aboutsummaryrefslogtreecommitdiff
path: root/src/patch
diff options
context:
space:
mode:
authorjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2001-06-17 18:18:32 +0000
committerjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2001-06-17 18:18:32 +0000
commit2d1208274d462debde84340d4b659209c3e2c39a (patch)
tree7fea6bc3a7db5ce67949f80ab7f9664c59023bad /src/patch
parent91168260fb68e6b6bf0ed5b9d2aa51858bf2d972 (diff)
a bit more testing stuff
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@60 f88db872-0e4f-0410-b76b-b9085cfa78c5
Diffstat (limited to 'src/patch')
-rw-r--r--src/patch/test_fd_grid.cc87
1 files changed, 86 insertions, 1 deletions
diff --git a/src/patch/test_fd_grid.cc b/src/patch/test_fd_grid.cc
index 9e5f2ac..2a6a120 100644
--- a/src/patch/test_fd_grid.cc
+++ b/src/patch/test_fd_grid.cc
@@ -96,7 +96,7 @@ const int max_sigma_N_ghost_zones = 5;
const int N_gridfns = 4;
// gfns
-const int gfn_f = 0;
+const int gfn_fn = 0;
const int gfn_deriv_true = 1;
const int gfn_deriv_fd = 2;
const int gfn_error = 3;
@@ -111,6 +111,11 @@ namespace {
void test_grid(const grid& g,
double delta_drho, double delta_dsigma,
int min_irho, int max_irho, int min_isigma, int max_isigma);
+
+void setup_fn(grid& g);
+void setup_deriv_true(grid& g, int flags);
+void setup_deriv_fd(grid& g, int flags);
+
fp fn(fp rho, fp sigma);
fp deriv(fp rho, fp sigma, int flags);
};
@@ -184,14 +189,21 @@ grid_pars. min_dsigma = min_dsigma;
grid_pars.delta_dsigma = delta_dsigma;
grid_pars. max_dsigma = max_dsigma;
+printf("# ");
fd_grid g(grid_array_pars, grid_pars, N_gridfns, true);
test_grid(g,
delta_drho, delta_dsigma,
min_irho, max_irho, min_isigma, max_isigma);
+
+setup_fn(g);
+setup_deriv_true(g, flags);
+setup_deriv_fd(g, flags);
}
//******************************************************************************
+//******************************************************************************
+//******************************************************************************
//
// This function does some basic tests on grid:: and grid_arrays::
@@ -211,6 +223,11 @@ assert( fuzzy<fp>::EQ(g.min_dsigma(), min_dsigma) );
assert( fuzzy<fp>::EQ(g.delta_dsigma(), delta_dsigma) );
assert( fuzzy<fp>::EQ(g.max_dsigma(), max_dsigma) );
+assert( g.min_irho() == min_irho );
+assert( g.max_irho() == max_irho );
+assert( g.min_isigma() == min_isigma );
+assert( g.max_isigma() == max_isigma );
+
assert( g.full_grid__min_irho() == min_irho - min_rho_N_ghost_zones );
assert( g.full_grid__max_irho() == max_irho + max_rho_N_ghost_zones );
assert( g.full_grid__min_isigma() == min_isigma - min_sigma_N_ghost_zones );
@@ -223,6 +240,74 @@ assert( g.full_grid__max_isigma() == max_isigma + max_sigma_N_ghost_zones );
//******************************************************************************
//
+// This function sets up the test function for the finite differencing
+// tests.
+//
+namespace {
+void setup_fn(grid& g)
+{
+printf("# setting up function\n");
+ for (int irho = g.min_irho() ; irho <= g.max_irho() ; ++irho)
+ {
+ for (int isigma = g.min_isigma() ; isigma <= g.max_isigma() ; ++isigma)
+ {
+ const fp rho = g.rho_of_irho(irho);
+ const fp sigma = g.sigma_of_isigma(isigma);
+ g.gridfn(gfn_fn, irho,isigma) = fn(rho,sigma);
+ }
+ }
+}
+ }
+
+//******************************************************************************
+
+//
+// This function sets up the analytic derivative expression for the
+// finite differencing tests.
+//
+namespace {
+void setup_deriv_true(grid& g, int flags)
+{
+printf("# setting up analytic derivatives\n");
+ for (int irho = g.min_irho() ; irho <= g.max_irho() ; ++irho)
+ {
+ for (int isigma = g.min_isigma() ; isigma <= g.max_isigma() ; ++isigma)
+ {
+ const fp rho = g.rho_of_irho(irho);
+ const fp sigma = g.sigma_of_isigma(isigma);
+ g.gridfn(gfn_fn, irho,isigma) = deriv(rho,sigma, flags);
+ }
+ }
+}
+ }
+
+//******************************************************************************
+
+//
+// This function sets up the analytic derivative expression for the
+// finite differencing tests.
+//
+namespace {
+void setup_deriv_fd(grid& g, int flags)
+{
+printf("# computing finite-difference derivatives\n");
+ for (int irho = g.min_irho() ; irho <= g.max_irho() ; ++irho)
+ {
+ for (int isigma = g.min_isigma() ; isigma <= g.max_isigma() ; ++isigma)
+ {
+ const fp rho = g.rho_of_irho(irho);
+ const fp sigma = g.sigma_of_isigma(isigma);
+ //g.gridfn(gfn_fn, irho,isigma) =
+ }
+ }
+}
+ }
+
+//******************************************************************************
+//******************************************************************************
+//******************************************************************************
+
+//
// this is the test function for our finite differencing tests
//
namespace {