diff options
author | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2001-06-17 18:18:32 +0000 |
---|---|---|
committer | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2001-06-17 18:18:32 +0000 |
commit | 2d1208274d462debde84340d4b659209c3e2c39a (patch) | |
tree | 7fea6bc3a7db5ce67949f80ab7f9664c59023bad /src/patch | |
parent | 91168260fb68e6b6bf0ed5b9d2aa51858bf2d972 (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.cc | 87 |
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 { |