diff options
author | goodale <goodale@edbb7e70-9571-45d5-a481-0a560a9b4751> | 2002-04-25 22:03:52 +0000 |
---|---|---|
committer | goodale <goodale@edbb7e70-9571-45d5-a481-0a560a9b4751> | 2002-04-25 22:03:52 +0000 |
commit | 8cdb79f6f0a916bea7dff9b6a8d5a533be5683f3 (patch) | |
tree | 780a9b2ec0f604a00766112437a5afa0d05f7c91 /doc | |
parent | f42d12c96264da8b8b2665bc88aa126e0a7d0474 (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.tex | 91 |
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} |