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 | |
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
-rw-r--r-- | README | 8 | ||||
-rw-r--r-- | doc/documentation.tex | 91 | ||||
-rw-r--r-- | interface.ccl | 18 | ||||
-rw-r--r-- | param.ccl | 3 | ||||
-rw-r--r-- | schedule.ccl | 2 | ||||
-rw-r--r-- | src/make.code.defn | 9 |
6 files changed, 131 insertions, 0 deletions
@@ -0,0 +1,8 @@ +Cactus Code Thorn CoordGauge +Authors : Tom Goodale +CVS info : $Header$ +-------------------------------------------------------------------------- + +Purpose of the thorn: + +Base thorn to provide the infrastructure for dynamic gauge selection. 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} diff --git a/interface.ccl b/interface.ccl new file mode 100644 index 0000000..262ffb0 --- /dev/null +++ b/interface.ccl @@ -0,0 +1,18 @@ +# Interface definition for thorn CoordGauge +# $Header$ + +implements: CoordGauge + +public: + +INT slicing_flags TYPE = SCALAR +{ + active_slicing_handle +} "Slicing and shift stuff" + +# Will be changed to. +#INT selected_slicing_handles TYPE = SCALAR +#{ +# selected_lapse +# selected_shift +#} "Slicing Handles" diff --git a/param.ccl b/param.ccl new file mode 100644 index 0000000..343d3e0 --- /dev/null +++ b/param.ccl @@ -0,0 +1,3 @@ +# Parameter definitions for thorn CoordGauge +# $Header$ + diff --git a/schedule.ccl b/schedule.ccl new file mode 100644 index 0000000..468d827 --- /dev/null +++ b/schedule.ccl @@ -0,0 +1,2 @@ +# Schedule definitions for thorn CoordGauge +# $Header$ diff --git a/src/make.code.defn b/src/make.code.defn new file mode 100644 index 0000000..38048cf --- /dev/null +++ b/src/make.code.defn @@ -0,0 +1,9 @@ +# Main make.code.defn file for thorn CoordGauge +# $Header$ + +# Source files in this directory +SRCS = + +# Subdirectories containing source files +SUBDIRS = + |