aboutsummaryrefslogtreecommitdiff
path: root/doc/documentation.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/documentation.tex')
-rw-r--r--doc/documentation.tex84
1 files changed, 84 insertions, 0 deletions
diff --git a/doc/documentation.tex b/doc/documentation.tex
new file mode 100644
index 0000000..44038b7
--- /dev/null
+++ b/doc/documentation.tex
@@ -0,0 +1,84 @@
+\documentclass{article}
+\begin{document}
+
+\title{Time}
+\author{Gabrielle Allen}
+\date{1999}
+\maketitle
+
+\abstract{Calculates the timestep used for an evolution}
+
+\section{Purpose}
+
+This thorn provides a routines for calculating
+the timestep for an evolution based on the spatial Cartesian grid spacing and
+a wave speed.
+
+\section{Description}
+
+Thorn {\tt Time} uses one of four methods to decide on the timestep
+to be used for the simulation. The method is chosen using the
+keyword parameter {\tt time::timestep\_method}. (Note: In releases Beta 8 and
+earlier the parameter used was {\tt time::courant\_method}
+\begin{itemize}
+
+\item{} {\tt time::timestep\_method = ``given''} The timestep is fixed to the
+ value of the parameter {\tt time::timestep}.
+
+\item{} {\tt time::timestep\_method = ``courant\_static''} This is the default
+ method, which calculates the timestep once at the start of the
+ simulation, based on a simple courant type condition using
+ the spatial gridsizes and the parameter {\tt time::dtfac}.
+$$
+\Delta t = \mbox{\tt dtfac} * \mbox{min}(\Delta x^i)
+$$
+ Note that it is up to the user to custom {\tt dtfac} to take
+ into account the dimension of the space being used, and the wave speed.
+
+\item{} {\tt time::timestep\_method = ``courant\_speed''} This choice implements a
+ dynamic courant type condition, the timestep being set before each
+ timestep using the spatial dimension of the grid, the spatial grid sizes, the
+ parameter {\tt courant\_fac} and the grid variable {\tt courant\_wave\_speed}.
+ The algorithm used is
+$$
+\Delta t = \mbox{\tt courant\_fac} * \mbox{min}(\Delta x^i)/\mbox{courant\_wave\_speed}/\sqrt(\mbox{dim})
+$$
+ For this algorithm to be successful, the variable {\tt courant\_wave\_speed}
+ must have been set by a thorn to the maximum wave speed on the grid.
+
+\item{} {\tt time::timestep\_method = ``courant\_time''} This choice is similar to the
+ method {\tt courant\_speed} above, in implementing a dynamic timestep.
+ However the timestep is chosen using
+$$
+\Delta t = \mbox{\tt courant\_fac} * \mbox{\tt courant\_min\_time}/\sqrt(\mbox{dim})
+$$
+ where the grid variable {\tt courant\_min\_time} must be set by a thorn to
+ the minimum time for a wave to cross a gridzone.
+
+\end{itemize}
+
+In all cases, Thorn {\tt Time} sets the Cactus variable {\tt cctk\_delta\_time}
+which is passed as part of the macro {\tt CCTK\_ARGUMENTS} to thorns called
+by the scheduler.
+
+Note that for hyperbolic problems, the Courant condition gives a minimum
+requirement for stability, namely that the numerical domain of dependency
+must encompass the physical domain of dependency, or
+$$
+\Delta t \le \mbox{min}(\Delta x^i)/\mbox{wave speed}/\sqrt(\mbox{dim})
+$$
+
+
+\end{itemize}
+
+
+
+
+
+
+% Automatically created from the ccl files by using gmake thorndoc
+\include{interface}
+\include{param}
+\include{schedule}
+
+\end{document}