aboutsummaryrefslogtreecommitdiff
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
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
-rw-r--r--README8
-rw-r--r--doc/documentation.tex91
-rw-r--r--interface.ccl18
-rw-r--r--param.ccl3
-rw-r--r--schedule.ccl2
-rw-r--r--src/make.code.defn9
6 files changed, 131 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..94855c8
--- /dev/null
+++ b/README
@@ -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 =
+