aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjthorn <jthorn@df1f8a13-aa1d-4dd4-9681-27ded5b42416>2002-05-19 13:14:22 +0000
committerjthorn <jthorn@df1f8a13-aa1d-4dd4-9681-27ded5b42416>2002-05-19 13:14:22 +0000
commit420c76006777c214856bd3b5d3ff14b9357af5d6 (patch)
treec2070f3140832157d823adf01ad04351563c0713 /src
parent13f1732c4f1ea3ea0eba489d1b8e15f6f160b218 (diff)
add a "guided tour" to the source code
git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/LocalInterp/trunk@50 df1f8a13-aa1d-4dd4-9681-27ded5b42416
Diffstat (limited to 'src')
-rw-r--r--src/GeneralizedPolynomial-Uniform/README30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/GeneralizedPolynomial-Uniform/README b/src/GeneralizedPolynomial-Uniform/README
index 39949c3..a4232b9 100644
--- a/src/GeneralizedPolynomial-Uniform/README
+++ b/src/GeneralizedPolynomial-Uniform/README
@@ -12,6 +12,36 @@ program!
+The source code files are as follows:
+* startup.c registers the interpolation operator
+* 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.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.
+* [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
+
+
+
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)