From 8cdb79f6f0a916bea7dff9b6a8d5a533be5683f3 Mon Sep 17 00:00:00 2001 From: goodale Date: Thu, 25 Apr 2002 22:03:52 +0000 Subject: 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 --- README | 8 +++++ doc/documentation.tex | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++ interface.ccl | 18 ++++++++++ param.ccl | 3 ++ schedule.ccl | 2 ++ src/make.code.defn | 9 +++++ 6 files changed, 131 insertions(+) create mode 100644 README create mode 100644 doc/documentation.tex create mode 100644 interface.ccl create mode 100644 param.ccl create mode 100644 schedule.ccl create mode 100644 src/make.code.defn 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 = + -- cgit v1.2.3