aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreschnett <eschnett@6ca9aeac-0e4f-0410-a746-fe4df63e9d0c>2010-07-01 02:53:47 +0000
committereschnett <eschnett@6ca9aeac-0e4f-0410-a746-fe4df63e9d0c>2010-07-01 02:53:47 +0000
commit0e223b3a1608b258fadbd6c92f7264f96ed97698 (patch)
tree4169fe3ead5572a735145a2b752bea6327a351d1
parent1e3e99c3f92719255fe2f508d0812f726fdef40f (diff)
Add example and test case
git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/InterpToArray/trunk@17 6ca9aeac-0e4f-0410-a746-fe4df63e9d0c
-rw-r--r--par/qc0-interpolate.par613
-rw-r--r--test/wavetoy.par83
-rw-r--r--test/wavetoy/arrays2d[0]_maximum.xg2
-rw-r--r--test/wavetoy/arrays2d[0]_minimum.xg2
-rw-r--r--test/wavetoy/arrays2d[0]_norm1.xg2
-rw-r--r--test/wavetoy/arrays2d[0]_norm2.xg2
-rw-r--r--test/wavetoy/arrays2d[0]_norm_inf.xg2
-rw-r--r--test/wavetoy/arrays2d[0]_x_[0].xg6
-rw-r--r--test/wavetoy/arrays2d[0]_y_[0].xg7
-rw-r--r--test/wavetoy/parrays3d[0]_3D_diagonal.xg6
-rw-r--r--test/wavetoy/parrays3d[0]_maximum.xg2
-rw-r--r--test/wavetoy/parrays3d[0]_minimum.xg2
-rw-r--r--test/wavetoy/parrays3d[0]_norm1.xg2
-rw-r--r--test/wavetoy/parrays3d[0]_norm2.xg2
-rw-r--r--test/wavetoy/parrays3d[0]_norm_inf.xg2
-rw-r--r--test/wavetoy/parrays3d[0]_x_[0][0].xg6
-rw-r--r--test/wavetoy/parrays3d[0]_y_[0][0].xg7
-rw-r--r--test/wavetoy/parrays3d[0]_z_[0][0].xg8
-rw-r--r--test/wavetoy/phi_3D_diagonal.xg18
-rw-r--r--test/wavetoy/phi_maximum.xg2
-rw-r--r--test/wavetoy/phi_minimum.xg2
-rw-r--r--test/wavetoy/phi_norm1.xg2
-rw-r--r--test/wavetoy/phi_norm2.xg2
-rw-r--r--test/wavetoy/phi_norm_inf.xg2
-rw-r--r--test/wavetoy/phi_x_[7][7].xg18
-rw-r--r--test/wavetoy/phi_y_[7][7].xg18
-rw-r--r--test/wavetoy/phi_z_[7][7].xg18
27 files changed, 838 insertions, 0 deletions
diff --git a/par/qc0-interpolate.par b/par/qc0-interpolate.par
new file mode 100644
index 0000000..1ac39a5
--- /dev/null
+++ b/par/qc0-interpolate.par
@@ -0,0 +1,613 @@
+Cactus::cctk_run_title = "Evolve a QC-0 binary black hole system, and interpolate the waveform onto regular grid arrays"
+
+Cactus::cctk_full_warnings = yes
+Cactus::highlight_warning_messages = no
+
+Cactus::terminate = "time"
+Cactus::cctk_final_time = 100.0
+
+
+
+ActiveThorns = "IOUtil"
+
+IO::out_dir = $parfile
+
+
+
+ActiveThorns = "TerminationTrigger"
+
+TerminationTrigger::max_walltime = 0.0 # hours
+TerminationTrigger::on_remaining_walltime = 15.0 # minutes
+
+TerminationTrigger::termination_from_file = yes
+TerminationTrigger::create_termination_file = yes
+TerminationTrigger::termination_file = "../TERMINATE"
+
+
+
+ActiveThorns = "AEILocalInterp"
+
+ActiveThorns = "BLAS LAPACK"
+
+ActiveThorns = "Fortran"
+
+ActiveThorns = "GSL"
+
+ActiveThorns = "GenericFD"
+
+ActiveThorns = "HDF5"
+
+ActiveThorns = "LoopControl"
+
+ActiveThorns = "Slab"
+
+
+
+#ActiveThorns = "SummationByParts"
+#
+#SummationByParts::order = 4
+
+
+
+ActiveThorns = "InitBase"
+
+
+
+ActiveThorns = "Carpet CarpetLib CarpetInterp CarpetReduce"
+
+Carpet::verbose = no
+Carpet::veryverbose = no
+Carpet::schedule_barriers = no
+Carpet::storage_verbose = no
+CarpetLib::output_bboxes = no
+
+Carpet::domain_from_coordbase = yes
+Carpet::max_refinement_levels = 10
+
+driver::ghost_size = 3
+Carpet::use_buffer_zones = yes
+
+Carpet::prolongation_order_space = 5
+Carpet::prolongation_order_time = 2
+
+Carpet::convergence_level = 0
+
+Carpet::init_fill_timelevels = yes
+#Carpet::init_3_timelevels = yes
+
+Carpet::poison_new_timelevels = yes
+CarpetLib::poison_new_memory = yes
+
+Carpet::output_timers_every = 5120
+CarpetLib::print_timestats_every = 5120
+CarpetLib::print_memstats_every = 5120
+
+
+
+ActiveThorns = "NaNChecker"
+
+NaNChecker::check_every = 1 # 512
+#NaNChecker::verbose = "all"
+#NaNChecker::action_if_found = "just warn"
+NaNChecker::action_if_found = "terminate"
+NaNChecker::check_vars = "
+ ML_BSSN::ML_log_confac
+ ML_BSSN::ML_metric
+ ML_BSSN::ML_trace_curv
+ ML_BSSN::ML_curv
+ ML_BSSN::ML_Gamma
+ ML_BSSN::ML_lapse
+ ML_BSSN::ML_shift
+ ML_BSSN::ML_dtlapse
+ ML_BSSN::ML_dtshift
+ ADMBase::metric
+ ADMBase::curv
+ ADMBase::lapse
+ ADMBase::shift
+ ADMBase::dtlapse
+ ADMBase::dtshift
+"
+
+
+
+ActiveThorns = "Boundary CartGrid3D CoordBase ReflectionSymmetry RotatingSymmetry180 SymBase"
+
+CoordBase::domainsize = "minmax"
+
+CoordBase::xmin = 0.00
+CoordBase::ymin = -120.00
+CoordBase::zmin = 0.00
+CoordBase::xmax = +120.00
+CoordBase::ymax = +120.00
+CoordBase::zmax = +120.00
+CoordBase::dx = 2.00
+CoordBase::dy = 2.00
+CoordBase::dz = 2.00
+
+CoordBase::boundary_size_x_lower = 3
+CoordBase::boundary_size_y_lower = 3
+CoordBase::boundary_size_z_lower = 3
+CoordBase::boundary_size_x_upper = 3
+CoordBase::boundary_size_y_upper = 3
+CoordBase::boundary_size_z_upper = 3
+
+CoordBase::boundary_shiftout_x_lower = 1
+CoordBase::boundary_shiftout_z_lower = 1
+
+GenericFD::boundary_width = 3
+
+CartGrid3D::type = "coordbase"
+
+ReflectionSymmetry::reflection_z = yes
+ReflectionSymmetry::avoid_origin_z = no
+
+
+
+ActiveThorns = "SphericalSurface"
+
+SphericalSurface::nsurfaces = 4
+SphericalSurface::maxntheta = 39
+SphericalSurface::maxnphi = 76
+
+SphericalSurface::ntheta [0] = 39
+SphericalSurface::nphi [0] = 76
+SphericalSurface::nghoststheta[0] = 2
+SphericalSurface::nghostsphi [0] = 2
+
+SphericalSurface::ntheta [1] = 39
+SphericalSurface::nphi [1] = 76
+SphericalSurface::nghoststheta[1] = 2
+SphericalSurface::nghostsphi [1] = 2
+
+SphericalSurface::ntheta [2] = 39
+SphericalSurface::nphi [2] = 76
+SphericalSurface::nghoststheta[2] = 2
+SphericalSurface::nghostsphi [2] = 2
+
+SphericalSurface::ntheta [3] = 39
+SphericalSurface::nphi [3] = 76
+SphericalSurface::nghoststheta[3] = 2
+SphericalSurface::nghostsphi [3] = 2
+
+
+
+ActiveThorns = "CarpetMask"
+
+CarpetMask::verbose = no
+
+CarpetMask::excluded_surface [0] = 0
+CarpetMask::excluded_surface_factor[0] = 1.0
+
+CarpetMask::excluded_surface [1] = 1
+CarpetMask::excluded_surface_factor[1] = 1.0
+
+CarpetMask::excluded_surface [2] = 2
+CarpetMask::excluded_surface_factor[2] = 1.0
+
+
+
+ActiveThorns = "CarpetRegrid2 CarpetTracker"
+
+CarpetTracker::surface[0] = 0
+CarpetTracker::surface[1] = 1
+CarpetTracker::surface[2] = 2
+
+CarpetRegrid2::regrid_every = 128
+CarpetRegrid2::freeze_unaligned_levels = yes
+CarpetRegrid2::symmetry_rotating180 = yes
+CarpetRegrid2::verbose = yes
+
+CarpetRegrid2::num_centres = 3
+
+CarpetRegrid2::num_levels_1 = 7
+CarpetRegrid2::position_x_1 = +1.168642873
+CarpetRegrid2::radius_1[ 1] = 64.0
+CarpetRegrid2::radius_1[ 2] = 16.0
+CarpetRegrid2::radius_1[ 3] = 8.0
+CarpetRegrid2::radius_1[ 4] = 4.0
+CarpetRegrid2::radius_1[ 5] = 2.0
+CarpetRegrid2::radius_1[ 6] = 1.0
+CarpetRegrid2::movement_threshold_1 = 0.16
+
+CarpetRegrid2::num_levels_2 = 7
+CarpetRegrid2::position_x_2 = -1.168642873
+CarpetRegrid2::radius_2[ 1] = 64.0
+CarpetRegrid2::radius_2[ 2] = 16.0
+CarpetRegrid2::radius_2[ 3] = 8.0
+CarpetRegrid2::radius_2[ 4] = 4.0
+CarpetRegrid2::radius_2[ 5] = 2.0
+CarpetRegrid2::radius_2[ 6] = 1.0
+CarpetRegrid2::movement_threshold_2 = 0.16
+
+CarpetRegrid2::num_levels_3 = 7
+CarpetRegrid2::active_3 = no
+CarpetRegrid2::radius_3[ 1] = 64.0
+CarpetRegrid2::radius_3[ 2] = 16.0
+CarpetRegrid2::radius_3[ 3] = 8.0
+CarpetRegrid2::radius_3[ 4] = 4.0
+CarpetRegrid2::radius_3[ 5] = 2.0
+CarpetRegrid2::radius_3[ 6] = 1.0
+CarpetRegrid2::movement_threshold_3 = 0.16
+
+
+
+ActiveThorns = "MoL Time"
+
+MoL::ODE_Method = "RK4"
+MoL::MoL_Intermediate_Steps = 4
+MoL::MoL_Num_Scratch_Levels = 1
+
+Time::dtfac = 0.25
+
+
+
+ActiveThorns = "ADMBase ADMCoupling ADMMacros CoordGauge SpaceMask StaticConformal TmunuBase"
+
+ADMMacros::spatial_order = 4
+
+
+
+ActiveThorns = "TwoPunctures"
+
+ADMBase::metric_type = "physical"
+
+ADMBase::initial_data = "twopunctures"
+ADMBase::initial_lapse = "twopunctures-averaged"
+ADMBase::initial_shift = "zero"
+ADMBase::initial_dtlapse = "zero"
+ADMBase::initial_dtshift = "zero"
+
+TwoPunctures::par_b = 1.168642873
+TwoPunctures::par_m_plus = 0.453
+TwoPunctures::par_m_minus = 0.453
+TwoPunctures::par_P_plus [1] = +0.3331917498
+TwoPunctures::par_P_minus[1] = -0.3331917498
+
+#TODO# TwoPunctures::grid_setup_method = "evaluation"
+
+TwoPunctures::TP_epsilon = 1.0e-2
+TwoPunctures::TP_Tiny = 1.0e-2
+
+TwoPunctures::verbose = yes
+
+
+
+ActiveThorns = "ML_BSSN ML_BSSN_Helper NewRad"
+
+ADMBase::evolution_method = "ML_BSSN"
+ADMBase::lapse_evolution_method = "ML_BSSN"
+ADMBase::shift_evolution_method = "ML_BSSN"
+ADMBase::dtlapse_evolution_method = "ML_BSSN"
+ADMBase::dtshift_evolution_method = "ML_BSSN"
+
+ML_BSSN::harmonicN = 1 # 1+log
+ML_BSSN::harmonicF = 2.0 # 1+log
+ML_BSSN::ShiftGammaCoeff = 0.75
+ML_BSSN::BetaDriver = 1.0
+ML_BSSN::LapseAdvectionCoeff = 1.0
+ML_BSSN::ShiftAdvectionCoeff = 1.0
+
+ML_BSSN::MinimumLapse = 1.0e-8
+
+ML_BSSN::my_initial_boundary_condition = "extrapolate-gammas"
+ML_BSSN::my_rhs_boundary_condition = "NewRad"
+Boundary::radpower = 2
+
+ML_BSSN::ML_log_confac_bound = "none"
+ML_BSSN::ML_metric_bound = "none"
+ML_BSSN::ML_Gamma_bound = "none"
+ML_BSSN::ML_trace_curv_bound = "none"
+ML_BSSN::ML_curv_bound = "none"
+ML_BSSN::ML_lapse_bound = "none"
+ML_BSSN::ML_dtlapse_bound = "none"
+ML_BSSN::ML_shift_bound = "none"
+ML_BSSN::ML_dtshift_bound = "none"
+
+
+
+ActiveThorns = "Dissipation"
+
+Dissipation::order = 5
+Dissipation::vars = "
+ ML_BSSN::ML_log_confac
+ ML_BSSN::ML_metric
+ ML_BSSN::ML_trace_curv
+ ML_BSSN::ML_curv
+ ML_BSSN::ML_Gamma
+ ML_BSSN::ML_lapse
+ ML_BSSN::ML_shift
+ ML_BSSN::ML_dtlapse
+ ML_BSSN::ML_dtshift
+"
+
+
+
+ActiveThorns = "ML_ADMConstraints"
+
+
+
+ActiveThorns = "AHFinderDirect"
+
+AHFinderDirect::find_every = 128
+
+AHFinderDirect::run_at_CCTK_POST_RECOVER_VARIABLES = no
+
+AHFinderDirect::move_origins = yes
+AHFinderDirect::reshape_while_moving = yes
+AHFinderDirect::predict_origin_movement = yes
+
+AHFinderDirect::geometry_interpolator_name = "Lagrange polynomial interpolation"
+AHFinderDirect::geometry_interpolator_pars = "
+ order=4
+ boundary_off_centering_tolerance={1.0e-10 1.0e-10 1.0e-10 1.0e-10 1.0e-10 1.0e-10}
+ boundary_extrapolation_tolerance={0.0 0.0 0.0 0.0 0.0 0.0}
+"
+AHFinderDirect::surface_interpolator_name = "Lagrange polynomial interpolation"
+AHFinderDirect::surface_interpolator_pars = "
+ order=4
+ boundary_off_centering_tolerance={1.0e-10 1.0e-10 1.0e-10 1.0e-10}
+ boundary_extrapolation_tolerance={0.0 0.0 0.0 0.0}
+"
+
+AHFinderDirect::output_h_every = 0
+
+AHFinderDirect::N_horizons = 4
+
+AHFinderDirect::origin_x [1] = +1.168642873
+AHFinderDirect::initial_guess__coord_sphere__x_center[1] = +1.168642873
+AHFinderDirect::initial_guess__coord_sphere__radius [1] = 0.25
+AHFinderDirect::which_surface_to_store_info [1] = 0
+AHFinderDirect::reset_horizon_after_not_finding [1] = no
+AHFinderDirect::dont_find_after_individual_time [1] = 30.0
+
+AHFinderDirect::origin_x [2] = -1.168642873
+AHFinderDirect::initial_guess__coord_sphere__x_center[2] = -1.168642873
+AHFinderDirect::initial_guess__coord_sphere__radius [2] = 0.25
+AHFinderDirect::which_surface_to_store_info [2] = 1
+AHFinderDirect::reset_horizon_after_not_finding [2] = no
+AHFinderDirect::dont_find_after_individual_time [2] = 30.0
+
+AHFinderDirect::initial_guess__coord_sphere__radius [3] = 1.0
+AHFinderDirect::which_surface_to_store_info [3] = 2
+AHFinderDirect::reset_horizon_after_not_finding [3] = no
+AHFinderDirect::find_after_individual_time [3] = 15.0
+
+AHFinderDirect::surface_definition [4] = "expansion product"
+AHFinderDirect::surface_selection [4] = "areal radius"
+AHFinderDirect::desired_value [4] = 50.0
+AHFinderDirect::initial_guess__coord_sphere__radius [4] = 50.0
+AHFinderDirect::which_surface_to_store_info [4] = 3
+AHFinderDirect::reset_horizon_after_not_finding [4] = no
+
+
+
+ActiveThorns = "QuasiLocalMeasures"
+
+QuasiLocalMeasures::verbose = yes
+QuasiLocalMeasures::interpolator = "Lagrange polynomial interpolation"
+QuasiLocalMeasures::interpolator_options = "
+ order=4
+ boundary_off_centering_tolerance={1.0e-10 1.0e-10 1.0e-10 1.0e-10 1.0e-10 1.0e-10}
+ boundary_extrapolation_tolerance={0.0 0.0 0.0 0.0 0.0 0.0}
+"
+QuasiLocalMeasures::spatial_order = 4
+
+QuasiLocalMeasures::num_surfaces = 4
+QuasiLocalMeasures::surface_index[0] = 0
+QuasiLocalMeasures::surface_index[1] = 1
+QuasiLocalMeasures::surface_index[2] = 2
+QuasiLocalMeasures::surface_index[3] = 3
+
+
+
+ActiveThorns = "Multipole WeylScal4"
+
+WeylScal4::Psi4r_group_bound = "scalar"
+WeylScal4::Psi4i_group_bound = "scalar"
+
+Multipole::l_max = 8
+Multipole::nradii = 4
+Multipole::radius[0] = 100.0
+Multipole::radius[1] = 80.0
+Multipole::radius[2] = 60.0
+Multipole::radius[3] = 40.0
+Multipole::out_1d_every = 128
+Multipole::variables = "
+ WeylScal4::psi4r{sw=-2 cmplx='WeylScal4::psi4i' name='WeylScal4::psi4'}
+"
+
+
+
+ActiveThorns = "InterpToArray"
+
+InterpToArray::nparrays3d = 1
+InterpToArray::parray3d_vars[0] = "WeylScal4::psi4r"
+
+InterpToArray::parray3d_x0 = -102.0
+InterpToArray::parray3d_y0 = -102.0
+InterpToArray::parray3d_z0 = -102.0
+InterpToArray::parray3d_dx_i = 0.8
+InterpToArray::parray3d_dy_j = 0.8
+InterpToArray::parray3d_dz_k = 0.8
+InterpToArray::parray3d_npoints_i = 256
+InterpToArray::parray3d_npoints_j = 256
+InterpToArray::parray3d_npoints_k = 256
+
+#InterpToArray::parray3d_x0 = -102.3
+#InterpToArray::parray3d_y0 = -102.3
+#InterpToArray::parray3d_z0 = -102.3
+#InterpToArray::parray3d_dx_i = 0.2
+#InterpToArray::parray3d_dy_j = 0.2
+#InterpToArray::parray3d_dz_k = 0.2
+#InterpToArray::parray3d_npoints_i = 1024
+#InterpToArray::parray3d_npoints_j = 1024
+#InterpToArray::parray3d_npoints_k = 1024
+
+#InterpToArray::parray3d_x0 = -102.375
+#InterpToArray::parray3d_y0 = -102.375
+#InterpToArray::parray3d_z0 = -102.375
+#InterpToArray::parray3d_dx_i = 0.05
+#InterpToArray::parray3d_dy_j = 0.05
+#InterpToArray::parray3d_dz_k = 0.05
+#InterpToArray::parray3d_npoints_i = 4096
+#InterpToArray::parray3d_npoints_j = 4096
+#InterpToArray::parray3d_npoints_k = 4096
+
+
+
+ActiveThorns = "CarpetIOBasic"
+
+IOBasic::outInfo_every = 128
+IOBasic::outInfo_reductions = "norm2"
+IOBasic::outInfo_vars = "
+ Carpet::physical_time_per_hour
+ ML_ADMConstraints::H
+ WeylScal4::psi4r
+ SphericalSurface::sf_radius[0]
+ QuasiLocalMeasures::qlm_spin[0]
+"
+
+
+
+ActiveThorns = "CarpetIOScalar"
+
+IOScalar::one_file_per_group = yes
+
+IOScalar::outScalar_every = 128
+IOScalar::outScalar_vars = "
+ CarpetReduce::weight
+ ADMBase::metric
+ ADMBase::curv
+ ADMBase::lapse
+ ADMBase::shift
+ ADMBase::dtlapse
+ ADMBase::dtshift
+ ML_ADMConstraints::ML_Ham
+ ML_ADMConstraints::ML_mom
+ SphericalSurface::sf_radius
+ WeylScal4::psi4r
+ WeylScal4::psi4i
+ QuasiLocalMeasures::qlm_newman_penrose
+ QuasiLocalMeasures::qlm_weyl_scalars
+ QuasiLocalMeasures::qlm_ricci_scalars
+"
+
+
+
+ActiveThorns = "CarpetIOASCII"
+
+IOASCII::one_file_per_group = yes
+
+IOASCII::output_symmetry_points = no
+IOASCII::out3D_ghosts = no
+
+IOASCII::out0D_every = 128
+IOASCII::out0D_vars = "
+ Carpet::timing
+ CarpetReduce::weight
+ ADMBase::metric
+ ADMBase::curv
+ ADMBase::lapse
+ ADMBase::shift
+ ADMBase::dtlapse
+ ADMBase::dtshift
+ ML_ADMConstraints::ML_Ham
+ ML_ADMConstraints::ML_mom
+ SphericalSurface::sf_active
+ SphericalSurface::sf_valid
+ SphericalSurface::sf_info
+ SphericalSurface::sf_radius
+ SphericalSurface::sf_origin
+ SphericalSurface::sf_coordinate_descriptors
+ QuasiLocalMeasures::qlm_state
+ QuasiLocalMeasures::qlm_grid_int
+ QuasiLocalMeasures::qlm_grid_real
+ QuasiLocalMeasures::qlm_scalars
+ QuasiLocalMeasures::qlm_multipole_moments
+"
+
+IOASCII::out1D_every = 128
+IOASCII::out1D_vars = "
+ CarpetReduce::weight
+ ADMBase::metric
+ ADMBase::curv
+ ADMBase::lapse
+ ADMBase::shift
+ ADMBase::dtlapse
+ ADMBase::dtshift
+ ML_ADMConstraints::ML_Ham
+ ML_ADMConstraints::ML_mom
+ SphericalSurface::sf_radius
+ QuasiLocalMeasures::qlm_shapes
+ QuasiLocalMeasures::qlm_coordinates
+ QuasiLocalMeasures::qlm_tetrad_l
+ QuasiLocalMeasures::qlm_tetrad_n
+ QuasiLocalMeasures::qlm_tetrad_m
+ QuasiLocalMeasures::qlm_newman_penrose
+ QuasiLocalMeasures::qlm_weyl_scalars
+ QuasiLocalMeasures::qlm_ricci_scalars
+ QuasiLocalMeasures::qlm_twometric
+ QuasiLocalMeasures::qlm_killing_vector
+ QuasiLocalMeasures::qlm_killed_twometric
+ QuasiLocalMeasures::qlm_invariant_coordinates
+ QuasiLocalMeasures::qlm_3determinant
+ WeylScal4::psi4r
+ WeylScal4::psi4i
+ Multipole::harmonics
+"
+
+IOASCII::out2D_every = 128
+IOASCII::out2D_vars = "
+ SphericalSurface::sf_radius
+"
+
+
+
+Activethorns = "CarpetIOHDF5"
+
+IOHDF5::out_every = 5120
+IOHDF5::one_file_per_group = yes
+IOHDF5::output_symmetry_points = no
+IOHDF5::out3D_ghosts = no
+IOHDF5::compression_level = 1
+IOHDF5::use_checksums = yes
+IOHDF5::out_vars = "
+ CarpetReduce::weight
+ ADMBase::metric
+ ADMBase::curv
+ ADMBase::lapse
+ ADMBase::shift
+ ADMBase::dtlapse
+ ADMBase::dtshift
+ ML_ADMConstraints::ML_Ham
+ ML_ADMConstraints::ML_mom
+ WeylScal4::psi4r
+ WeylScal4::psi4i
+ InterpToArray::parrays3d
+"
+
+IOHDF5::checkpoint = yes
+IO::checkpoint_dir = $parfile
+IO::checkpoint_ID = yes
+IO::checkpoint_every = 5120
+#IO::checkpoint_every_walltime_hours = 6.0
+IO::checkpoint_keep = -1
+IO::checkpoint_on_terminate = yes
+
+IO::recover = "autoprobe"
+IO::recover_dir = $parfile
+
+
+
+
+ActiveThorns = "Formaline"
+
+
+
+ActiveThorns = "TimerReport"
+
+TimerReport::out_every = 5120
+TimerReport::out_filename = "TimerReport"
+TimerReport::output_all_timers_together = yes
+TimerReport::output_all_timers_readable = yes
+TimerReport::n_top_timers = 20
diff --git a/test/wavetoy.par b/test/wavetoy.par
new file mode 100644
index 0000000..f1425bd
--- /dev/null
+++ b/test/wavetoy.par
@@ -0,0 +1,83 @@
+!DESC "Test InterpToArray with WaveToy initial data"
+
+ActiveThorns = "
+ Boundary
+ CartGrid3D
+ CoordBase
+ IDScalarWaveC
+ IOASCII
+ IOBasic
+ IOUtil
+ InterpToArray
+ LocalInterp
+ LocalReduce
+ PUGH
+ PUGHInterp
+ PUGHReduce
+ PUGHSlab
+ SymBase
+ WaveToyC
+"
+
+Cactus::cctk_itlast = 0
+
+driver::global_nx = 15
+driver::global_ny = 15
+driver::global_nz = 15
+driver::ghost_size = 2
+
+grid::type = "byspacing"
+grid::dxyz = 0.6
+
+IDScalarWave::initial_data = "Gaussian"
+IDScalarWave::sigma = 2.8
+IDScalarWave::radius = 5.0
+
+
+
+InterpToArray::interpolator_name = "uniform cartesian"
+
+InterpToArray::narrays2d = 1
+InterpToArray::array2d_vars[0] = "wavetoy::phi"
+InterpToArray::array2d_x0 = -1.0
+InterpToArray::array2d_y0 = -1.0
+InterpToArray::array2d_z0 = -1.0
+InterpToArray::array2d_dx_i = 0.5
+InterpToArray::array2d_dy_j = 0.4
+InterpToArray::array2d_dz_j = 0.1
+InterpToArray::array2d_npoints_i = 3
+InterpToArray::array2d_npoints_j = 4
+
+InterpToArray::nparrays3d = 1
+InterpToArray::parray3d_vars[0] = "wavetoy::phi"
+InterpToArray::parray3d_x0 = -1.0
+InterpToArray::parray3d_y0 = -1.0
+InterpToArray::parray3d_z0 = -1.0
+InterpToArray::parray3d_dx_i = 0.5
+InterpToArray::parray3d_dy_j = 0.5
+InterpToArray::parray3d_dz_k = 0.5
+InterpToArray::parray3d_npoints_i = 3
+InterpToArray::parray3d_npoints_j = 4
+InterpToArray::parray3d_npoints_k = 5
+
+
+
+IO::out_dir = $parfile
+IO::parfile_write = "no"
+IO::out_fileinfo = "none"
+
+IOBasic::outScalar_reductions = "norm1 norm2 minimum maximum norm_inf"
+IOBasic::outScalar_every = 1
+IOBasic::outScalar_vars = "
+ wavetoy::phi
+ InterpToArray::arrays2d[0]
+ InterpToArray::parrays3d[0]
+"
+
+IOASCII::out1D_every = 1
+IOASCII::out1D_vars = "
+ wavetoy::phi
+ InterpToArray::scalars
+ InterpToArray::arrays2d
+ InterpToArray::parrays3d
+"
diff --git a/test/wavetoy/arrays2d[0]_maximum.xg b/test/wavetoy/arrays2d[0]_maximum.xg
new file mode 100644
index 0000000..5267316
--- /dev/null
+++ b/test/wavetoy/arrays2d[0]_maximum.xg
@@ -0,0 +1,2 @@
+"arrays2d[0] v time
+0.0000000000000 0.2559290438033
diff --git a/test/wavetoy/arrays2d[0]_minimum.xg b/test/wavetoy/arrays2d[0]_minimum.xg
new file mode 100644
index 0000000..a319a06
--- /dev/null
+++ b/test/wavetoy/arrays2d[0]_minimum.xg
@@ -0,0 +1,2 @@
+"arrays2d[0] v time
+0.0000000000000 0.0981997271448
diff --git a/test/wavetoy/arrays2d[0]_norm1.xg b/test/wavetoy/arrays2d[0]_norm1.xg
new file mode 100644
index 0000000..d727340
--- /dev/null
+++ b/test/wavetoy/arrays2d[0]_norm1.xg
@@ -0,0 +1,2 @@
+"arrays2d[0] v time
+0.0000000000000 0.1622239184695
diff --git a/test/wavetoy/arrays2d[0]_norm2.xg b/test/wavetoy/arrays2d[0]_norm2.xg
new file mode 100644
index 0000000..ccfb470
--- /dev/null
+++ b/test/wavetoy/arrays2d[0]_norm2.xg
@@ -0,0 +1,2 @@
+"arrays2d[0] v time
+0.0000000000000 0.1685259557890
diff --git a/test/wavetoy/arrays2d[0]_norm_inf.xg b/test/wavetoy/arrays2d[0]_norm_inf.xg
new file mode 100644
index 0000000..5267316
--- /dev/null
+++ b/test/wavetoy/arrays2d[0]_norm_inf.xg
@@ -0,0 +1,2 @@
+"arrays2d[0] v time
+0.0000000000000 0.2559290438033
diff --git a/test/wavetoy/arrays2d[0]_x_[0].xg b/test/wavetoy/arrays2d[0]_x_[0].xg
new file mode 100644
index 0000000..273e4dc
--- /dev/null
+++ b/test/wavetoy/arrays2d[0]_x_[0].xg
@@ -0,0 +1,6 @@
+
+
+"Time = 0.0000000000000
+0 0.2559290438033
+1 0.2094583408982
+2 0.1939189183225
diff --git a/test/wavetoy/arrays2d[0]_y_[0].xg b/test/wavetoy/arrays2d[0]_y_[0].xg
new file mode 100644
index 0000000..06c162c
--- /dev/null
+++ b/test/wavetoy/arrays2d[0]_y_[0].xg
@@ -0,0 +1,7 @@
+
+
+"Time = 0.0000000000000
+0 0.2559290438033
+1 0.2044903680418
+2 0.1738539578662
+3 0.1643877561027
diff --git a/test/wavetoy/parrays3d[0]_3D_diagonal.xg b/test/wavetoy/parrays3d[0]_3D_diagonal.xg
new file mode 100644
index 0000000..0c61eb0
--- /dev/null
+++ b/test/wavetoy/parrays3d[0]_3D_diagonal.xg
@@ -0,0 +1,6 @@
+
+
+"Time = 0.0000000000000
+0 0.2559290438033
+1 0.1111550275597
+2 0.0575070381476
diff --git a/test/wavetoy/parrays3d[0]_maximum.xg b/test/wavetoy/parrays3d[0]_maximum.xg
new file mode 100644
index 0000000..c29e9fc
--- /dev/null
+++ b/test/wavetoy/parrays3d[0]_maximum.xg
@@ -0,0 +1,2 @@
+"parrays3d[0] v time
+0.0000000000000 0.2559290438033
diff --git a/test/wavetoy/parrays3d[0]_minimum.xg b/test/wavetoy/parrays3d[0]_minimum.xg
new file mode 100644
index 0000000..c814a33
--- /dev/null
+++ b/test/wavetoy/parrays3d[0]_minimum.xg
@@ -0,0 +1,2 @@
+"parrays3d[0] v time
+0.0000000000000 0.0575070381476
diff --git a/test/wavetoy/parrays3d[0]_norm1.xg b/test/wavetoy/parrays3d[0]_norm1.xg
new file mode 100644
index 0000000..5a96903
--- /dev/null
+++ b/test/wavetoy/parrays3d[0]_norm1.xg
@@ -0,0 +1,2 @@
+"parrays3d[0] v time
+0.0000000000000 0.1472381207718
diff --git a/test/wavetoy/parrays3d[0]_norm2.xg b/test/wavetoy/parrays3d[0]_norm2.xg
new file mode 100644
index 0000000..491c016
--- /dev/null
+++ b/test/wavetoy/parrays3d[0]_norm2.xg
@@ -0,0 +1,2 @@
+"parrays3d[0] v time
+0.0000000000000 0.1544329726684
diff --git a/test/wavetoy/parrays3d[0]_norm_inf.xg b/test/wavetoy/parrays3d[0]_norm_inf.xg
new file mode 100644
index 0000000..c29e9fc
--- /dev/null
+++ b/test/wavetoy/parrays3d[0]_norm_inf.xg
@@ -0,0 +1,2 @@
+"parrays3d[0] v time
+0.0000000000000 0.2559290438033
diff --git a/test/wavetoy/parrays3d[0]_x_[0][0].xg b/test/wavetoy/parrays3d[0]_x_[0][0].xg
new file mode 100644
index 0000000..273e4dc
--- /dev/null
+++ b/test/wavetoy/parrays3d[0]_x_[0][0].xg
@@ -0,0 +1,6 @@
+
+
+"Time = 0.0000000000000
+0 0.2559290438033
+1 0.2094583408982
+2 0.1939189183225
diff --git a/test/wavetoy/parrays3d[0]_y_[0][0].xg b/test/wavetoy/parrays3d[0]_y_[0][0].xg
new file mode 100644
index 0000000..3ec649e
--- /dev/null
+++ b/test/wavetoy/parrays3d[0]_y_[0][0].xg
@@ -0,0 +1,7 @@
+
+
+"Time = 0.0000000000000
+0 0.2559290438033
+1 0.2094583408982
+2 0.1939189183225
+3 0.2094583408982
diff --git a/test/wavetoy/parrays3d[0]_z_[0][0].xg b/test/wavetoy/parrays3d[0]_z_[0][0].xg
new file mode 100644
index 0000000..9454b68
--- /dev/null
+++ b/test/wavetoy/parrays3d[0]_z_[0][0].xg
@@ -0,0 +1,8 @@
+
+
+"Time = 0.0000000000000
+0 0.2559290438033
+1 0.2094583408982
+2 0.1939189183225
+3 0.2094583408982
+4 0.2559290438033
diff --git a/test/wavetoy/phi_3D_diagonal.xg b/test/wavetoy/phi_3D_diagonal.xg
new file mode 100644
index 0000000..7261bd4
--- /dev/null
+++ b/test/wavetoy/phi_3D_diagonal.xg
@@ -0,0 +1,18 @@
+
+
+"Time = 0.0000000000000
+-6.7549981495186 0.6751235936513
+-5.7157676649773 0.9367420144351
+-4.6765371804360 0.9867432223551
+-3.6373066958946 0.7891067225602
+-2.5980762113533 0.4790874265193
+-1.5588457268120 0.2208214420284
+-0.5196152422707 0.0772707537752
+0.5196152422707 0.0772707537752
+1.5588457268120 0.2208214420284
+2.5980762113533 0.4790874265193
+3.6373066958946 0.7891067225602
+4.6765371804360 0.9867432223551
+5.7157676649773 0.9367420144351
+6.7549981495186 0.6751235936513
+7.7942286340599 0.3693975497431
diff --git a/test/wavetoy/phi_maximum.xg b/test/wavetoy/phi_maximum.xg
new file mode 100644
index 0000000..09ef046
--- /dev/null
+++ b/test/wavetoy/phi_maximum.xg
@@ -0,0 +1,2 @@
+"phi v time
+0.0000000000000 0.9999198827161
diff --git a/test/wavetoy/phi_minimum.xg b/test/wavetoy/phi_minimum.xg
new file mode 100644
index 0000000..dfff009
--- /dev/null
+++ b/test/wavetoy/phi_minimum.xg
@@ -0,0 +1,2 @@
+"phi v time
+0.0000000000000 0.0772707537752
diff --git a/test/wavetoy/phi_norm1.xg b/test/wavetoy/phi_norm1.xg
new file mode 100644
index 0000000..8c182d5
--- /dev/null
+++ b/test/wavetoy/phi_norm1.xg
@@ -0,0 +1,2 @@
+"phi v time
+0.0000000000000 0.8148785107206
diff --git a/test/wavetoy/phi_norm2.xg b/test/wavetoy/phi_norm2.xg
new file mode 100644
index 0000000..b618b94
--- /dev/null
+++ b/test/wavetoy/phi_norm2.xg
@@ -0,0 +1,2 @@
+"phi v time
+0.0000000000000 0.8424968585241
diff --git a/test/wavetoy/phi_norm_inf.xg b/test/wavetoy/phi_norm_inf.xg
new file mode 100644
index 0000000..09ef046
--- /dev/null
+++ b/test/wavetoy/phi_norm_inf.xg
@@ -0,0 +1,2 @@
+"phi v time
+0.0000000000000 0.9999198827161
diff --git a/test/wavetoy/phi_x_[7][7].xg b/test/wavetoy/phi_x_[7][7].xg
new file mode 100644
index 0000000..d993f96
--- /dev/null
+++ b/test/wavetoy/phi_x_[7][7].xg
@@ -0,0 +1,18 @@
+
+
+"Time = 0.0000000000000
+-3.9000000000000 0.8624762718586
+-3.3000000000000 0.6998161919677
+-2.7000000000000 0.5192102694005
+-2.1000000000000 0.3529089299372
+-1.5000000000000 0.2208214420284
+-0.9000000000000 0.1292593546971
+-0.3000000000000 0.0772707537752
+0.3000000000000 0.0772707537752
+0.9000000000000 0.1292593546971
+1.5000000000000 0.2208214420284
+2.1000000000000 0.3529089299372
+2.7000000000000 0.5192102694005
+3.3000000000000 0.6998161919677
+3.9000000000000 0.8624762718586
+4.5000000000000 0.9710346043534
diff --git a/test/wavetoy/phi_y_[7][7].xg b/test/wavetoy/phi_y_[7][7].xg
new file mode 100644
index 0000000..d993f96
--- /dev/null
+++ b/test/wavetoy/phi_y_[7][7].xg
@@ -0,0 +1,18 @@
+
+
+"Time = 0.0000000000000
+-3.9000000000000 0.8624762718586
+-3.3000000000000 0.6998161919677
+-2.7000000000000 0.5192102694005
+-2.1000000000000 0.3529089299372
+-1.5000000000000 0.2208214420284
+-0.9000000000000 0.1292593546971
+-0.3000000000000 0.0772707537752
+0.3000000000000 0.0772707537752
+0.9000000000000 0.1292593546971
+1.5000000000000 0.2208214420284
+2.1000000000000 0.3529089299372
+2.7000000000000 0.5192102694005
+3.3000000000000 0.6998161919677
+3.9000000000000 0.8624762718586
+4.5000000000000 0.9710346043534
diff --git a/test/wavetoy/phi_z_[7][7].xg b/test/wavetoy/phi_z_[7][7].xg
new file mode 100644
index 0000000..d993f96
--- /dev/null
+++ b/test/wavetoy/phi_z_[7][7].xg
@@ -0,0 +1,18 @@
+
+
+"Time = 0.0000000000000
+-3.9000000000000 0.8624762718586
+-3.3000000000000 0.6998161919677
+-2.7000000000000 0.5192102694005
+-2.1000000000000 0.3529089299372
+-1.5000000000000 0.2208214420284
+-0.9000000000000 0.1292593546971
+-0.3000000000000 0.0772707537752
+0.3000000000000 0.0772707537752
+0.9000000000000 0.1292593546971
+1.5000000000000 0.2208214420284
+2.1000000000000 0.3529089299372
+2.7000000000000 0.5192102694005
+3.3000000000000 0.6998161919677
+3.9000000000000 0.8624762718586
+4.5000000000000 0.9710346043534