aboutsummaryrefslogtreecommitdiff
path: root/src/GeneralizedPolynomial-Uniform/README
diff options
context:
space:
mode:
Diffstat (limited to 'src/GeneralizedPolynomial-Uniform/README')
-rw-r--r--src/GeneralizedPolynomial-Uniform/README107
1 files changed, 0 insertions, 107 deletions
diff --git a/src/GeneralizedPolynomial-Uniform/README b/src/GeneralizedPolynomial-Uniform/README
deleted file mode 100644
index 15c6d27..0000000
--- a/src/GeneralizedPolynomial-Uniform/README
+++ /dev/null
@@ -1,107 +0,0 @@
-$Header$
-
-This directory contains the interpolator registered for
- CCTK_InterpLocalUniform()
-under the names
- "Lagrange polynomial interpolation" # a synonym for the next one...
- "Lagrange polynomial interpolation (tensor product)"
- "Lagrange polynomial interpolation (maximum degree)"
- "Hermite polynomial interpolation"
-
-
-The source code files are as follows:
-* startup.c registers the interpolation operators
-* InterpLocalUniform.h is an overall header file for the whole interpolator
-* InterpLocalUniform.c is the top-level driver: it gets the various
- options from the parameter table, then decodes
- (N_dims, molecule_family, order, smoothing)
- and calls the appropriate subfunction to do the actual interpolation,
- then finally stores some results back in the parameter table.
-* [123]d.cube.order*.smooth*.c define the individual interpolation
- subfunctions. Each of them just #defines a whole bunch of macros,
- then #includes template.c (which has the actual code).
-* template.h defines a prototype for the function defined by template.c
-* template.c is the actual interpolation code. It is written in
- terms of a large number of macros, which should be #defined
- before #including template.c. There's a long block comment
- "Implementation notes:" at the start of the function, which
- gives an outline of how the function works. (This is probably
- the best place to start reading if you want to understand this
- interpolator!) All the actual interpolation is done by
- Maple-generated code fragments in the [123]d.coeffs/directories;
- template.c uses various macros to tell it which fragments to
- #include.
-* molecule_posn.c contains the LocalInterp_molecule_posn() function
- to compute where in the grid each (an) interpolation molecule should
- be centered for each (a given) interpolation point.
-* util.c contains some low-level utility routines
-* [123]d.maple are the top-level Maple code files; they call
- various functions in interpolate.maple and util.maple to do
- the actual work.
-* interpolate.maple contains the high-level Maple code for
- computing an interpolant and manipulating/printing it in various
- ways
-* util.maple contains low-level utility routines
-* makefile is a makefile for...
-* test_molecule_posn.c is a standalone test driver for the code
- in molecule_posn.c . By default it runs a large set of (around 100)
- test cases stored in a table in the code.
-
-The subdirectories are as follows:
-* Lagrange/ and [123]d.coeffs/ are empty directory trees left-over
- from previous versions of this interpolator (CVS doesn't have any
- easy way to remove directories)
-* Lagrange-tensor-product/ contains the code for the Lagrange polynomial
- interpolator using tensor-product bases for multiple dimensions.
-* Lagrange-maximum-degree/ contains the code for the Lagrange polynomial
- interpolator using maximum-degree bases for multiple dimensions.
-* Hermite/ contains the code for the Hermite polynomial interpolator.
-* common/ contains low-level code common to both the Lagrange and
- the Hermite interpolators.
-
-
-To add a new combination of (N_dims, molecule_family, order, smoothing),
-to this interpolator, you need to
-* edit the appropriate Maple script (1d.maple, 2d.maple, 3d.maple, etc)
- to generate the coefficients and write the appropriate files
-* edit the makefile to create the appropriate directory or directories,
- and if necessary add any new targets
-* 'make' as appropriate to create the new coefficients etc
- [note this can be rather computationally intensive -- for example,
- the set of {1d,2d,3d} Lagrange-tensor-product coefficients take about
- {4 seconds, 40 seconds, 20 minutes} to generate using Maple 7 on
- an AEI xeon (1.7 GHz Pentium 4 with 1GB memory)]
-* edit InterpLocalUniform.c to add the new case to the decoding
- switch statements
-* create an appropriate "script" file which defines the right macros,
- then does a
- #include "template.c"
- to define the actual interpolation function; the best way to create
- the script file is just to copy an existing one
- (eg. 2d.cube.order3.smooth0.c)
-* add the appropriate entry to all_prototypes.h to define a prototype
- for the actual interpolation function
-* add the new "script" file to the list in make.code.defn
-
-
-
-Copyright
-=========
-
-This interpolator is copyright (C) 2001-2003
-by Jonathan Thornburg <jthorn@aei.mpg.de>.
-
-This interpolator is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This interpolator is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this thorn (see the file COPYING in this directory);
-if not, write to the Free Software Foundation, Inc., 59 Temple
-Place, Suite 330, Boston, MA 02111-1307 USA