aboutsummaryrefslogtreecommitdiff
path: root/doc/documentation.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/documentation.tex')
-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}