aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorgoodale <goodale@edbb7e70-9571-45d5-a481-0a560a9b4751>2002-04-25 22:03:52 +0000
committergoodale <goodale@edbb7e70-9571-45d5-a481-0a560a9b4751>2002-04-25 22:03:52 +0000
commit8cdb79f6f0a916bea7dff9b6a8d5a533be5683f3 (patch)
tree780a9b2ec0f604a00766112437a5afa0d05f7c91 /doc
parentf42d12c96264da8b8b2665bc88aa126e0a7d0474 (diff)
Initial import of new Einstein stuff. This has the new thorns, but not all
are fully functional yet. When I have completed this stage I'll send an updated spec out with some questions which have arisen during this process. Please don't import anything new without checking with me first, as I want to play games on the server copying cvs files around to preserve histories on files which are only minimally touched. Tom git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinBase/CoordGauge/trunk@43 edbb7e70-9571-45d5-a481-0a560a9b4751
Diffstat (limited to 'doc')
-rw-r--r--doc/documentation.tex91
1 files changed, 91 insertions, 0 deletions
diff --git a/doc/documentation.tex b/doc/documentation.tex
new file mode 100644
index 0000000..8165f8c
--- /dev/null
+++ b/doc/documentation.tex
@@ -0,0 +1,91 @@
+\documentclass{article}
+\begin{document}
+
+\title{CoordGauge}
+\author{Tom Goodale}
+\date{April 2002}
+\maketitle
+
+\abstract{Base thorn to provide the infrastructure for dynamic gauge selection}
+
+\section{Purpose}
+
+The CoordGauge implementation schedules five groups
+
+CoordGauge
+
+LapseSelect IN CoordGauge BEFORE PickCoordGauge
+LapseApply IN CoordGauge AFTER PickCoordGauge
+
+ShiftSelect IN CoordGauge BEFORE PickCoordGauge
+ShiftApply IN CoordGauge AFTER PickCoordGauge
+
+and one function
+
+PickCoordGauge IN CoordGauge
+
+and has two public grid scalars
+
+selected\_lapse
+selected\_shift
+
+and two string parameters
+
+lapse\_list
+shift\_list
+
+It also provides four aliased functions
+
+\begin{verbatim}
+
+int CoordGauge_RegisterLapse("lapse-name")
+int CoordGauge_RegisterShift("shift-name")
+
+CoordGauge_Lapse("lapse-name")
+CoordGauge_Shift("shift-name")
+
+\end{verbatim}
+
+(If someone can think of better names, please say so 8-)
+
+Then each thorn which wants to apply a coordinate gauge condition
+registers itself, receiving a unique integer as an id, and schedules a
+selection routine and an application routine in the appropriate schedule
+groups.
+
+The selection routine decides if this gauge condition should be applied at
+this time, and calls the CoordGauge_Lapse/Shift aliased function. (It
+should check that it is actually in the appropriate parameter as a
+minimum.)
+
+The PickCoordGauge traverses the list of lapses/shifts and selects the
+first one in the list which has called the CoordGauge\_Lapse/Shift aliased
+function and sets the appropriate grid scalar to the id of this one.
+
+The application routine checks to see if the grid scalar is set to its id,
+and if so, applies the gauge condition.
+
+Evolution thorns could schedule CoordGauge at the appropriate point or
+points in their schedule.
+
+An advantage of this scheme over the current one is that it provides the
+selection routines with a full set of variables from which to decide
+whether they should apply a guage or not. So it becomes very easy to
+choose to switch off maximal if the lapse has collapsed within a certain
+volume, etc.
+
+This is simpler than the previous scheme as there is no arbitrary 'bid'
+floating around. It also allows us to keep the logic of the final
+selection in one place, thus allowing people to override this logic if
+they need to.
+
+\section{Comments}
+
+
+
+% Automatically created from the ccl files by using gmake thorndoc
+\include{interface}
+\include{param}
+\include{schedule}
+
+\end{document}