aboutsummaryrefslogtreecommitdiff
path: root/doc/documentation.tex
diff options
context:
space:
mode:
authorallen <allen@6a38eb6e-646e-4a02-a296-d141613ad6c4>2001-01-24 09:56:16 +0000
committerallen <allen@6a38eb6e-646e-4a02-a296-d141613ad6c4>2001-01-24 09:56:16 +0000
commit5766861f7d6bbe2e106b20f479c447855f5a8448 (patch)
treee39ee44df418dd3af5677dde537f6b06ec1d1c12 /doc/documentation.tex
parent4c1a3d4878fe9636e61e6710928de8c54645cd20 (diff)
Adding directional boundary conditions for everything apart from Robin.
See thorn documentation for details Next to come, boundary conditions for grid functions which aren't CCTK_REALs. git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/Boundary/trunk@131 6a38eb6e-646e-4a02-a296-d141613ad6c4
Diffstat (limited to 'doc/documentation.tex')
-rw-r--r--doc/documentation.tex129
1 files changed, 108 insertions, 21 deletions
diff --git a/doc/documentation.tex b/doc/documentation.tex
index d501260..c1c2176 100644
--- a/doc/documentation.tex
+++ b/doc/documentation.tex
@@ -177,7 +177,7 @@ integer \> group\_index\\
\end{tabbing}
}
-\subsection*{Arguments}
+\subsubsection*{Arguments}
\begin{Lentry}
\item[{\tt ierr}] Return value, negative value indicates the
boundary condition was not successfully applied
@@ -201,6 +201,8 @@ boundary value of phi {\tt phi(nx,j,k)}, on the positive x-boundary will
be copied from {\tt phi(nx-1,j,k)}.
\subsubsection*{Calling from C:}
+
+{\bf All Coordinate Directions:}
\begin{verbatim}
int ierr = BndFlatVN(cGH *cctkGH, int *stencil_size, char *variable_name)
int ierr = BndFlatGN(cGH *cctkGH, int *stencil_size, char *group_name)
@@ -208,30 +210,62 @@ int ierr = BndFlatVI(cGH *cctkGH, int *stencil_size, int variable_index)
int ierr = BndFlatGI(cGH *cctkGH, int *stencil_size, int group_index)
\end{verbatim}
+{\bf Individual Coordinate Directions:}
+\begin{verbatim}
+int ierr = BndFlatVN(cGH *cctkGH, int stencil, int dir, char *variable_name)
+int ierr = BndFlatGN(cGH *cctkGH, int stencil, int dir, char *group_name)
+int ierr = BndFlatVI(cGH *cctkGH, int stencil, int dir, int variable_index)
+int ierr = BndFlatGI(cGH *cctkGH, int stencil, int dir, int group_index)
+\end{verbatim}
+
\subsubsection*{Calling from Fortran:}
+{\bf All Coordinate Directions:}
+\begin{verbatim}
+call BndFlatVN(ierr, cctkGH, stencil_array, variable_name)
+call BndFlatGN(ierr, cctkGH, stencil_array, group_name)
+call BndFlatVI(ierr, cctkGH, stencil_array, variable_index)
+call BndFlatGI(ierr, cctkGH, stencil_array, group_index)
+\end{verbatim}
+
+{\bf Individual Coordinate Directions:}
\begin{verbatim}
-call BndFlatVN(ierr, cctkGH, stencil_size, variable_name)
-call BndFlatGN(ierr, cctkGH, stencil_size, group_name)
-call BndFlatVI(ierr, cctkGH, stencil_size, variable_index)
-call BndFlatGI(ierr, cctkGH, stencil_size, group_index)
+call BndFlatVN(ierr, cctkGH, stencil, dir, variable_name)
+call BndFlatGN(ierr, cctkGH, stencil, dir, group_name)
+call BndFlatVI(ierr, cctkGH, stencil, dir, variable_index)
+call BndFlatGI(ierr, cctkGH, stencil, dir, group_index)
\end{verbatim}
where
+{\tt
+\begin{tabbing}
+character*(*) \= variable\_name\=\kill
+integer \> ierr \\
+CCTK\_POINTER \> cctkGH\\
+integer \> dir\\
+integer \> stencil\\
+integer \> stencil\_array(dim)\\
+character*(*) \> variable\_name\\
+character*(*) \> group\_name\\
+integer \> variable\_index\\
+integer \> group\_index\\
+\end{tabbing}
+}
+
+\subsubsection*{Arguments}
\begin{Lentry}
-\item[{\tt integer ierr}] return value, operation failed when return
-value {\em negative}
-\item[{\tt CCTK\_POINTER cctkGH}] grid hierarchy pointer
-\item[{\tt CCTK\_REAL var0}] scalar value to apply
-\item[{\tt integer stencil\_size(dim)}] array of size {\tt dim}
-(dimension of the gridfunction). To how many points from the outer
-boundary to apply the boundary condition.
-\item[{\tt character*(*) variable\_name}] Name of the variable.
-\item[{\tt character*(*) group\_name}] Name of the group.
-\item[{\tt integer variable\_index}] Variable index.
-\item[{\tt integer group\_index}] Group index.
+\item[{\tt ierr}] Return value, negative value indicates the
+boundary condition was not successfully applied
+\item[{\tt cctkGH}] Grid hierarchy pointer
+\item[{\tt dir}] Coordinate direction in which to apply boundary condition
+\item[{\tt stencil\_size}] Array with dimension of the grid function, containing the stencil width to apply the boundary at
+\item[{\tt variable\_name}] Name of the variable
+\item[{\tt group\_name}] Name of the group
+\item[{\tt variable\_index}] Variable index
+\item[{\tt group\_index}] Group index
\end{Lentry}
+
\subsection{Radiation Boundary Condition}
This is a two level scheme. Grid functions are given for the current time
@@ -293,22 +327,42 @@ the region where the characteristic speed is constant.
Notice that this speed does not have to be 1.
\subsubsection*{Calling from C:}
+
+{\bf All Coordinate Directions:}
\begin{verbatim}
int ierr = BndRadiativeVN(cGH *cctkGH, int *stencil_size,
- CCTK_REAL speed, CCTK_REAL limit,
+ CCTK_REAL limit, CCTK_REAL speed,
char *variable_name, char *variable_name_past)
int ierr = BndRadiativeGN(cGH *cctkGH, int *stencil_size,
- CCTK_REAL speed, CCTK_REAL limit,
+ CCTK_REAL limit, CCTK_REAL speed,
char *group_name, char *group_name_past)
int ierr = BndRadiativeVI(cGH *cctkGH, int *stencil_size,
- CCTK_REAL speed, CCTK_REAL limit,
+ CCTK_REAL limit, CCTK_REAL speed,
int variable_index, int variable_index_past)
int ierr = BndRadiativeGI(cGH *cctkGH, int *stencil_size,
- CCTK_REAL speed, CCTK_REAL limit,
+ CCTK_REAL limit, CCTK_REAL speed,
+ int group_index, int group_index_past)
+\end{verbatim}
+
+{\bf Individual Coordinate Directions:}
+\begin{verbatim}
+int ierr = BndRadiativeVN(cGH *cctkGH, int stencil, int dir,
+ CCTK_REAL limit, CCTK_REAL speed,
+ char *variable_name, char *variable_name_past)
+int ierr = BndRadiativeGN(cGH *cctkGH, int *stencil, int dir,
+ CCTK_REAL limit, CCTK_REAL speed,
+ char *group_name, char *group_name_past)
+int ierr = BndRadiativeVI(cGH *cctkGH, int *stencil, int dir,
+ CCTK_REAL limit, CCTK_REAL speed,
+ int variable_index, int variable_index_past)
+int ierr = BndRadiativeGI(cGH *cctkGH, int *stencil, int dir,
+ CCTK_REAL limit, CCTK_REAL speed,
int group_index, int group_index_past)
\end{verbatim}
\subsubsection*{Calling from Fortran:}
+
+{\bf All Coordinate Directions:}
\begin{verbatim}
call BndRadiativeVN(ierr, cctkGH, stencil_size, speed, limit,
variable_name, variable_name_past)
@@ -319,6 +373,39 @@ call BndRadiativeVN(ierr, cctkGH, stencil_size, speed, limit,
call BndRadiativeVN(ierr, cctkGH, stencil_size, speed, limit,
group_index, group_index_past)
\end{verbatim}
+
+{\bf Individual Coordinate Directions:}
+\begin{verbatim}
+call BndRadiativeVN(ierr, cctkGH, stencil, dir, speed, limit,
+ variable_name, variable_name_past)
+call BndRadiativeVN(ierr, cctkGH, stencil, dir, speed, limit,
+ group_name, group_name_past)
+call BndRadiativeVN(ierr, cctkGH, stencil, dir, speed, limit,
+ variable_index, variable_index_past)
+call BndRadiativeVN(ierr, cctkGH, stencil, dir, speed, limit,
+ group_index, group_index_past)
+\end{verbatim}
+where
+{\tt
+\begin{tabbing}
+character*(*) \= variable\_name\=\kill
+integer \> ierr \\
+CCTK\_POINTER \> cctkGH\\
+integer \> dir\\
+integer \> stencil\\
+integer \> stencil\_array(dim)\\
+character*(*) \> variable\_name\\
+character*(*) \> group\_name\\
+integer \> variable\_index\\
+integer \> group\_index\\
+CCTK_REAL\>speed\\
+CCTK_REAL\>limit\\
+\end{tabbing}
+}
+
+
+
+
where
\begin{Lentry}
\item[{\tt integer ierr}] return value, operation failed when return
@@ -329,7 +416,7 @@ value {\em negative}
boundary to apply the boundary condition.
\item[{\tt CCTK\_REAL speed}] wave speed used for boundary condition ($v$).
-\item[{\tt CCTK\_REAL limit}] radation constant
+\item[{\tt CCTK\_REAL limit}] asymptotic value of function at infinity
\item[{\tt character*(*) variable\_name}] the name of the grid function
to which the boundary condition will be applied