diff options
author | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2001-09-12 17:08:03 +0000 |
---|---|---|
committer | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2001-09-12 17:08:03 +0000 |
commit | eea58772930eb3ff0aff6ca96fbf3f89455aa218 (patch) | |
tree | 625e86119c4a32634284f2414088742ef513deaf /src/patch/test_patch_system.cc | |
parent | 30ee1ee936c71712b95dc4514f5f458539414a08 (diff) |
properly symmetrize test data when setting up xyz gridfn
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@322 f88db872-0e4f-0410-b76b-b9085cfa78c5
Diffstat (limited to 'src/patch/test_patch_system.cc')
-rw-r--r-- | src/patch/test_patch_system.cc | 75 |
1 files changed, 46 insertions, 29 deletions
diff --git a/src/patch/test_patch_system.cc b/src/patch/test_patch_system.cc index 5f81863..42182b9 100644 --- a/src/patch/test_patch_system.cc +++ b/src/patch/test_patch_system.cc @@ -259,30 +259,7 @@ printf("##"); } printf("\n"); -fp origin_x = 0.314, origin_y = 0.159, origin_z = 0.265; -switch (type) - { -case patch_system::full_sphere_patch_system: - break; -case patch_system::plus_z_hemisphere_patch_system: - origin_z = 0.0; - break; -case patch_system::plus_xy_quadrant_patch_system: - origin_x = origin_y = 0.0; - break; -case patch_system::plus_xz_quadrant_patch_system: - origin_x = origin_z = 0.0; - break; -case patch_system::octant_patch_system: - origin_x = origin_y = origin_z = 0.0; - break; -default: - error_exit(PANIC_EXIT, -"***** test_patch_system: impossible patch system type=(int)%d!\n" -" (this should never happen!)\n" -, - int(type)); /*NOTREACHED*/ - } +const fp origin_x = 0.314, origin_y = 0.159, origin_z = 0.265; printf("## creating patch_system...\n"); patch_system ps(origin_x, origin_y, origin_z, @@ -297,7 +274,6 @@ case test_fn: setup_fn_xyz(ps, gfn_fn, true); ps.print_gridfn(gfn_to_print, true); break; - case test_ghost_zone: setup_fn_xyz(ps, gfn_fn, false); ps.extend_scalar_gridfn_to_all_ghost_zones(gfn_fn); @@ -305,7 +281,6 @@ case test_ghost_zone: gridfn_minus(ps, gfn_fn, gfn_ghosted_fn, gfn_error, true); ps.print_gridfn(gfn_to_print, true); break; - case test_deriv: setup_fn_rho_sigma(ps, gfn_fn, true); // fn(rho,sigma), ghost zones finite_diff(ps, gfn_fn, gfn_deriv_fd, which_derivs); @@ -313,6 +288,10 @@ case test_deriv: gridfn_minus(ps, gfn_deriv_fd, gfn_deriv_analytic, gfn_error, false); ps.print_gridfn(gfn_to_print, false); break; +default: + error_exit(PANIC_EXIT, +"main(): impossible which_test=(int)%d!\n", + int(which_test)); /*NOTREACHED*/ } } @@ -322,7 +301,8 @@ case test_deriv: // // This function sets up the test function for the function and -// ghost-zone tests. +// ghost-zone tests. The test function is adjusted to have the +// appropriate symmetry for the patch system. // // Arguments: // ps = The patch system. @@ -359,8 +339,45 @@ printf("## setting up test fn(x,y,z) on %s grid...\n", const fp global_y = ps.global_y_of_local_y(local_y); const fp global_z = ps.global_z_of_local_z(local_z); - p.gridfn(gfn, irho,isigma) - = fn_xyz(global_x, global_y, global_z); + fp temp; + switch (ps.type()) + { + case patch_system::full_sphere_patch_system: + temp = fn_xyz(global_x, global_y, global_z); + break; + case patch_system::plus_z_hemisphere_patch_system: + temp = fn_xyz(global_x, global_y, +global_z) + + fn_xyz(global_x, global_y, -global_z); + break; + case patch_system::plus_xy_quadrant_patch_system: + temp = fn_xyz(+global_x, +global_y, global_z) + + fn_xyz(-global_y, +global_x, global_z) + + fn_xyz(-global_x, -global_y, global_z) + + fn_xyz(+global_y, -global_x, global_z); + break; + case patch_system::plus_xz_quadrant_patch_system: + temp = fn_xyz(+global_x, +global_y, +global_z) + + fn_xyz(-global_x, -global_y, +global_z) + + fn_xyz(+global_x, +global_y, -global_z) + + fn_xyz(-global_x, -global_y, -global_z); + break; + case patch_system::octant_patch_system: + temp = fn_xyz(+global_x, +global_y, +global_z) + + fn_xyz(-global_y, +global_x, +global_z) + + fn_xyz(-global_x, -global_y, +global_z) + + fn_xyz(+global_y, -global_x, +global_z) + + fn_xyz(+global_x, +global_y, -global_z) + + fn_xyz(-global_y, +global_x, -global_z) + + fn_xyz(-global_x, -global_y, -global_z) + + fn_xyz(+global_y, -global_x, -global_z); + break; + default: + error_exit(PANIC_EXIT, +"***** setup_fn_xyz(): impossible ps.type()=(int)%d!\n", + int(ps.type())); /*NOTREACHED*/ + } + + p.gridfn(gfn, irho,isigma) = temp; } } } |