aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorallen <allen@57bc7290-fb3d-4efd-a9b1-28e84cce6043>2000-01-05 14:07:35 +0000
committerallen <allen@57bc7290-fb3d-4efd-a9b1-28e84cce6043>2000-01-05 14:07:35 +0000
commita5e5d1bf0a8f11d07e37db7ed6f271d31b0d3542 (patch)
tree9fd9029281ac1e44698e77a7ce3cd9f5f5efbe85
parentb13b17b9a1fb3868dff62e4784da205b90e08623 (diff)
Corrections and amendments
git-svn-id: http://svn.cactuscode.org/arrangements/CactusElliptic/EllBase/trunk@30 57bc7290-fb3d-4efd-a9b1-28e84cce6043
-rw-r--r--doc/ThornGuide.tex54
1 files changed, 29 insertions, 25 deletions
diff --git a/doc/ThornGuide.tex b/doc/ThornGuide.tex
index 72a697a..322943d 100644
--- a/doc/ThornGuide.tex
+++ b/doc/ThornGuide.tex
@@ -12,24 +12,29 @@ Documentation Authors & Gerd Lanfermann
\end{tabular}
\section{Introduction}
-We a give a brief introduction to the elliptic solver interfaces
-provided by {\tt EllBase}. Further down, we explain how to implement a
-new elliptic equations class and how to connect an elliptic solver to it.
-We do not discuss any elliptic solvers here, please refer to the
-elliptic solver thorns.
+Following a brief introduction to the elliptic solver interfaces
+provided by {\tt EllBase}, we explain how to add a
+new class of elliptic equations and how to implement a particular solver
+for any class.
+We do not discuss the individual elliptic solvers here since these are
+documented in their own thorns.
+
\subsection{Purpose of Thorn}
-Thorn EllBase provides the basic functionality to register a class of
-elliptic equations and register solver for that particular class.
+Thorn EllBase provides the basic functionality for
+\begin{itemize}
+\item registering a class of elliptic equations
+\item register a solver for any particular class
+\end{itemize}
+
The solvers are called by the user through a unique interface, which calls the
-elliptic solver requested by passing through the name under which the solver
-routine is registered. {\tt EllBase} defines four basic elliptic classes and offers two solver
-(SOR and PETSc) for each class.
+required elliptic solver for a class using the name under which the solver
+routine is registered.
-The elliptic classes supported by this thorn in three dimensions are
+{\tt EllBase} itself defines the elliptic classes
\begin{enumerate}
\item{\bf flat:} {\tt Ell\_LinFlat}\\
-solves a linear elliptic equation is flat space: $\nabla \phi - M \phi
+solves a linear elliptic equation in flat space: $\nabla \phi - M \phi
- N = 0 $
\item{\bf metric:} {\tt Ell\_LinMetric}\\
@@ -58,33 +63,32 @@ given metric and a conformal factor: $\nabla_{cg} \phi - M \phi
\section{ToDo}
\begin{itemize}
-\item{}Put more equation classes into {\tt EllBase}
-\item{}To way of passing boundary conditions into the
+\item{}Add more standard equation classes
+\item{}The method for passing boundary conditions into the
elliptic solvers has not fully consolidated. We have some good ideas
on what the interface should look like, but the implementation will
take some time. If you are worried about BCs, please contact me.
\end{itemize}
-\section{Using the elliptic calling interface}
+\section{Solving an elliptic equation}
EllBase provides a calling interfaces for each of the elliptic classes
implemented.
-As a user you provide the necessary information needed by a solver
-for that particular elliptic class, in general:
+As a user you need to provide all information needed for a
+particular elliptic class, in general this will include
\begin{itemize}
-\item{} you provide information on the metric
-\item{} you provide the gridfunction to solve for,
-\item{} you pass the coefficient matrix, the source terms.
-\item{} you set arrays containing information on tolerances.
-\item{} you can now chose a solver, which has to be registered
-for that elliptic class.
-\item{\bf Motivation:} At a later stage you might want to compile with a different
+\item{} the gridfunction(s) to solve for
+\item{} the coefficient matrix or source terms
+\item{} information on termination tolerances
+\item{} the name of the solver to be used
+\end{itemize}
+
+{\bf Motivation:} At a later stage you might want to compile with a different
solver for this elliptic class: just change the name of the solver in your
elliptic interface call. If somebody improves a solver you have been using,
there is no need for you to change any code on your side: the interface
will hide all of that. Another advantage is that your code will compile
and run, even though certain solvers are not compiled in. In these case, you
will have to do some return value checking to offer alternatives.
-\end{itemize}
\subsection{\tt Ell\_LinFlat}
To call this interface from {\bf Fortran}: