aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorallen <allen@5633253d-7678-4964-a54d-f87795f8ee59>2000-09-15 10:28:37 +0000
committerallen <allen@5633253d-7678-4964-a54d-f87795f8ee59>2000-09-15 10:28:37 +0000
commit8818164ee93781355a88da4bc40bea0ee179a16d (patch)
tree4130b28654785d16323edf31d6df812bcfa61363 /doc
parenta69ca9960f5eed7aec267de705a2b8554fe5c450 (diff)
Changes to better parameter names after adding new fixed timestep choice.
THESE SHOULDNT AFFECT ANYONE UNLESS THEY ARE USING DYNAMIC COURANT TIMESTEPS THE DEFAULTS REMAIN THE SAME Main one is that courant_method->timestep_method git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/Time/trunk@28 5633253d-7678-4964-a54d-f87795f8ee59
Diffstat (limited to 'doc')
-rw-r--r--doc/documention.tex72
1 files changed, 41 insertions, 31 deletions
diff --git a/doc/documention.tex b/doc/documention.tex
index 5629beb..44038b7 100644
--- a/doc/documention.tex
+++ b/doc/documention.tex
@@ -13,51 +13,61 @@
This thorn provides a routines for calculating
the timestep for an evolution based on the spatial Cartesian grid spacing and
a wave speed.
-\section{Comments}
-
-There are currently two methods for calculating the timestep, either the
-simple courant method, or a dynamic courant method. The method is chosen
-using the keyword parameter {\tt time::method}
-The timestep, is passed into the Cactus variable {\tt cctk\_delta\_time}.
-Both timesteps are based on the Courant condition, which states that for
-numerical stability, the chosen timestep should satisfy
-$$
-\Delta t \le \mbox{min}(\Delta x^i)/\mbox{wave speed}/\sqrt(\mbox{dim})
-$$
-The two methods currently implemented are:
+\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::method = "standard"} (this is the default). The timestep is calculated once
- at the start of the run in the {\tt BASEGRID} timebin, and is then held static
- throughout the run. The algorithm, which uses the parameter {\tt time::dtfac} is
+\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 the parameter {\tt dtfac} should take into account the dimension
- of the space being used, and the wave speed.
-
-\item {\tt time::method = "courant"}. The timestep is calculated dynamically at the
- start of each iteration in the {\tt PRESTEP} timebin. The algorithm is
+ 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{maximum wavespeed}/\sqrt(\mbox{dim})
+\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::method = "courant\_time"}. The timestep is calculated dynamically at the
- start of each iteration in the {\tt PRESTEP} timebin. The algorithm is
+\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{minimum time to cross a zone}/\sqrt(\mbox{dim})
+\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}
-\section{Technical Details}
+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.
-If a dynamic {\tt courant} condition is selected, a thorn must set the protected variable
-{\tt courant\_wave\_speed} for the maximum wave speed before Time sets the timestep.
+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})
+$$
-If a dynamic {\tt courant\_time} condition is selected, a thorn must set the protected variable
-{\tt courant\_time} for the minimum time for a wave to cross a zone
- before Time sets the timestep.
\end{itemize}