diff --git a/TestInterpolate/param.ccl b/TestInterpolate/param.ccl index 76a603bec..5e9d0372c 100644 --- a/TestInterpolate/param.ccl +++ b/TestInterpolate/param.ccl @@ -1 +1,9 @@ # Parameter definitions for thorn TestInterpolate + +BOOLEAN test_cell_interpolation "Test cell interpolation" +{ +} "no" + +BOOLEAN test_vertex_interpolation "Test vertex interpolation" +{ +} "no" diff --git a/TestInterpolate/schedule.ccl b/TestInterpolate/schedule.ccl index f109007c2..1a731235b 100644 --- a/TestInterpolate/schedule.ccl +++ b/TestInterpolate/schedule.ccl @@ -4,10 +4,22 @@ STORAGE: results_interpolate STORAGE: results_driver_interpolate STORAGE: reference -SCHEDULE TestInterpolate_test_interpolation AT poststep -{ - LANG: C - OPTIONS: global - READS: CoordinatesX::vertex_coords(everywhere) - WRITES: results_interpolate, results_driver_interpolate, reference -} "Test interpolation operators" +if (test_cell_interpolation) { + SCHEDULE TestInterpolate_test_vertex_interpolation AT poststep + { + LANG: C + OPTIONS: global + READS: CoordinatesX::vertex_coords(everywhere) + WRITES: results_interpolate, results_driver_interpolate, reference + } "Test vertex interpolation operators" +} + +if (test_vertex_interpolation) { + SCHEDULE TestInterpolate_test_cell_interpolation AT poststep + { + LANG: C + OPTIONS: global + READS: CoordinatesX::cell_coords(everywhere) + WRITES: results_interpolate, results_driver_interpolate, reference + } "Test cell interpolation operators" +} diff --git a/TestInterpolate/src/make.code.defn b/TestInterpolate/src/make.code.defn index 75bb611fb..ba4354c54 100644 --- a/TestInterpolate/src/make.code.defn +++ b/TestInterpolate/src/make.code.defn @@ -1,7 +1,7 @@ # Main make.code.defn file for thorn TestInterpolate # Source files in this directory -SRCS = test_interpolation.cxx +SRCS = test_cell_interpolation.cxx test_vertex_interpolation.cxx # Subdirectories containing source files SUBDIRS = diff --git a/TestInterpolate/src/test_cell_interpolation.cxx b/TestInterpolate/src/test_cell_interpolation.cxx new file mode 100644 index 000000000..75c45e4da --- /dev/null +++ b/TestInterpolate/src/test_cell_interpolation.cxx @@ -0,0 +1,163 @@ +#include +#include +#include + +namespace TestInterpolate { + +#define DIM(v) ((int)(sizeof(v)/sizeof((v)[0]))) + +extern "C" void TestInterpolate_test_cell_interpolation(CCTK_ARGUMENTS) { + DECLARE_CCTK_ARGUMENTS_TestInterpolate_test_cell_interpolation; + + constexpr CCTK_INT N_dims = 3; + + const CCTK_INT all_operations[1 + N_dims + N_dims*(N_dims-1)] = {0, 1, 2, 3, 11, 12, 13, 22, 23, 33}; + + const CCTK_INT all_varinds[N_dims] = { + CCTK_VarIndex("CoordinatesX::ccoordx"), + CCTK_VarIndex("CoordinatesX::ccoordy"), + CCTK_VarIndex("CoordinatesX::ccoordz"), + }; + + constexpr int nvars = DIM(all_varinds) * DIM(all_operations); + + CCTK_INT varinds[DIM(all_operations)][DIM(all_varinds)]; + CCTK_INT operations[DIM(all_operations)][DIM(all_varinds)]; + for (int op = 0 ; op < DIM(all_operations) ; op++) { + for (int var = 0 ; var < DIM(all_varinds) ; var++) { + varinds[op][var] = all_varinds[var]; + operations[op][var] = all_operations[op]; + } + } + + constexpr int npoints = 4; + const CCTK_REAL coords[N_dims][npoints] = { + {0.1, 0.2, 0.3, 0.1}, + {0.1, 0.2, 0.3, 0.2}, + {0.1, 0.2, 0.3, 0.3}, + }; + + CCTK_REAL *resultptrs[DIM(all_operations)][DIM(all_varinds)] = { + interpolate_x_o1_op0, + interpolate_y_o1_op0, + interpolate_z_o1_op0, + + interpolate_x_o1_op1, interpolate_y_o1_op1, interpolate_z_o1_op1, + interpolate_x_o1_op2, interpolate_y_o1_op2, interpolate_z_o1_op2, + interpolate_x_o1_op3, interpolate_y_o1_op3, interpolate_z_o1_op3, + + interpolate_x_o1_op11, interpolate_y_o1_op11, interpolate_z_o1_op11, + interpolate_x_o1_op12, interpolate_y_o1_op12, interpolate_z_o1_op12, + interpolate_x_o1_op13, interpolate_y_o1_op13, interpolate_z_o1_op13, + interpolate_x_o1_op22, interpolate_y_o1_op22, interpolate_z_o1_op22, + interpolate_x_o1_op23, interpolate_y_o1_op23, interpolate_z_o1_op23, + interpolate_x_o1_op33, interpolate_y_o1_op33, interpolate_z_o1_op33, + }; + CCTK_REAL *resultptrs2[DIM(all_operations)][DIM(all_varinds)] = { + driver_interpolate_x_o1_op0, + driver_interpolate_y_o1_op0, + driver_interpolate_z_o1_op0, + + driver_interpolate_x_o1_op1, driver_interpolate_y_o1_op1, driver_interpolate_z_o1_op1, + driver_interpolate_x_o1_op2, driver_interpolate_y_o1_op2, driver_interpolate_z_o1_op2, + driver_interpolate_x_o1_op3, driver_interpolate_y_o1_op3, driver_interpolate_z_o1_op3, + + driver_interpolate_x_o1_op11, driver_interpolate_y_o1_op11, driver_interpolate_z_o1_op11, + driver_interpolate_x_o1_op12, driver_interpolate_y_o1_op12, driver_interpolate_z_o1_op12, + driver_interpolate_x_o1_op13, driver_interpolate_y_o1_op13, driver_interpolate_z_o1_op13, + driver_interpolate_x_o1_op22, driver_interpolate_y_o1_op22, driver_interpolate_z_o1_op22, + driver_interpolate_x_o1_op23, driver_interpolate_y_o1_op23, driver_interpolate_z_o1_op23, + driver_interpolate_x_o1_op33, driver_interpolate_y_o1_op33, driver_interpolate_z_o1_op33, + }; + CCTK_REAL *referenceptrs[DIM(all_operations)][DIM(all_varinds)] = { + reference_x_o1_op0, + reference_y_o1_op0, + reference_z_o1_op0, + + reference_x_o1_op1, reference_y_o1_op1, reference_z_o1_op1, + reference_x_o1_op2, reference_y_o1_op2, reference_z_o1_op2, + reference_x_o1_op3, reference_y_o1_op3, reference_z_o1_op3, + + reference_x_o1_op11, reference_y_o1_op11, reference_z_o1_op11, + reference_x_o1_op12, reference_y_o1_op12, reference_z_o1_op12, + reference_x_o1_op13, reference_y_o1_op13, reference_z_o1_op13, + reference_x_o1_op22, reference_y_o1_op22, reference_z_o1_op22, + reference_x_o1_op23, reference_y_o1_op23, reference_z_o1_op23, + reference_x_o1_op33, reference_y_o1_op33, reference_z_o1_op33, + }; + + Interpolate(cctkGH, npoints, coords[0], coords[1], coords[2], nvars, + (CCTK_INT const * const)varinds, (CCTK_INT const * const)operations, 1, + (CCTK_REAL **)resultptrs); + + const void* interp_coords[N_dims] = { + coords[0], coords[1], coords[2] + }; + void *const *output_array = (void *const *)resultptrs2; + + /* DriverInterpolate arguments that aren't currently used */ + CCTK_INT const coord_system_handle = 0; + CCTK_INT const interp_coords_type_code = 0; + CCTK_INT const output_array_type_codes[1] = {0}; + int interp_handle = CCTK_InterpHandle("CarpetX"); + + if(interp_handle < 0) + CCTK_VERROR("Could not obtain inteprolator handle for built-in 'CarpetX' interpolator: %d", interp_handle); + + /* Table generation */ + int operands[DIM(all_operations)][DIM(all_varinds)]; + for (int op = 0 ; op < DIM(all_operations) ; op++) { + for (int var = 0 ; var < DIM(all_varinds) ; var++) { + operands[op][var] = var; + } + } + + int ierr; + int param_table_handle = Util_TableCreate(UTIL_TABLE_FLAGS_DEFAULT); + if (param_table_handle < 0) + CCTK_VERROR("Can't create parameter table: %d", param_table_handle); + if ((ierr = Util_TableSetInt(param_table_handle, 1, "order")) < 0) + CCTK_VERROR("Can't set order in parameter table: %d", ierr); + if ((ierr = Util_TableSetIntArray(param_table_handle, nvars, (int const*const)operands, + "operand_indices")) < 0) + CCTK_VERROR("Can't set operand_indices array in parameter table: %d", ierr); + if ((ierr = Util_TableSetIntArray(param_table_handle, nvars, (int const*const)operations, + "operation_codes")) < 0) + CCTK_VERROR("Can't set operation_codes array in parameter table: %d", ierr); + + DriverInterpolate( + cctkGH, N_dims, interp_handle, param_table_handle, coord_system_handle, + npoints, interp_coords_type_code, interp_coords, nvars, (int const*const)varinds, + nvars, output_array_type_codes, output_array); + + for (int op = 0 ; op < DIM(all_operations) ; op++) { + for (int var = 0 ; var < DIM(all_varinds) ; var++) { + for (int n = 0; n < npoints; ++n) { + const int operand = operations[op][var]; + switch (operand) { + case 0: + referenceptrs[op][var][n] = coords[var][n]; + break; + case 1: + case 2: + case 3: + referenceptrs[op][var][n] = (operand - 1 == var ? 1. : 0.); + break; + case 11: + case 12: + case 13: + case 22: + case 23: + case 33: + referenceptrs[op][var][n] = 0.; + break; + default: + CCTK_VERROR("Unsupported derivative operator %d", operand); + break; + } + } + } + } +} + +} // namespace TestInterpolate diff --git a/TestInterpolate/src/test_interpolation.cxx b/TestInterpolate/src/test_vertex_interpolation.cxx similarity index 97% rename from TestInterpolate/src/test_interpolation.cxx rename to TestInterpolate/src/test_vertex_interpolation.cxx index 54c32e214..c9b63de5d 100644 --- a/TestInterpolate/src/test_interpolation.cxx +++ b/TestInterpolate/src/test_vertex_interpolation.cxx @@ -6,8 +6,8 @@ namespace TestInterpolate { #define DIM(v) ((int)(sizeof(v)/sizeof((v)[0]))) -extern "C" void TestInterpolate_test_interpolation(CCTK_ARGUMENTS) { - DECLARE_CCTK_ARGUMENTS_TestInterpolate_test_interpolation; +extern "C" void TestInterpolate_test_vertex_interpolation(CCTK_ARGUMENTS) { + DECLARE_CCTK_ARGUMENTS_TestInterpolate_test_vertex_interpolation; constexpr CCTK_INT N_dims = 3; diff --git a/TestInterpolate/test/interpolate.par b/TestInterpolate/test/cell_interpolate.par similarity index 95% rename from TestInterpolate/test/interpolate.par rename to TestInterpolate/test/cell_interpolate.par index d9a50978c..269d468c6 100644 --- a/TestInterpolate/test/interpolate.par +++ b/TestInterpolate/test/cell_interpolate.par @@ -35,6 +35,8 @@ Driver::regrid_error_threshold = 5.0 CarpetX::prolongation_type = "ddf" +TestInterpolate::test_cell_interpolation = yes + IO::out_dir = $parfile IO::out_fileinfo = "axis labels" IO::parfile_write = "no" diff --git a/TestInterpolate/test/interpolate/testinterpolate-reference.it000000.tsv b/TestInterpolate/test/cell_interpolate/testinterpolate-reference.it000000.tsv similarity index 100% rename from TestInterpolate/test/interpolate/testinterpolate-reference.it000000.tsv rename to TestInterpolate/test/cell_interpolate/testinterpolate-reference.it000000.tsv diff --git a/TestInterpolate/test/interpolate/testinterpolate-results_driver_interpolate.it000000.tsv b/TestInterpolate/test/cell_interpolate/testinterpolate-results_driver_interpolate.it000000.tsv similarity index 100% rename from TestInterpolate/test/interpolate/testinterpolate-results_driver_interpolate.it000000.tsv rename to TestInterpolate/test/cell_interpolate/testinterpolate-results_driver_interpolate.it000000.tsv diff --git a/TestInterpolate/test/interpolate/testinterpolate-results_interpolate.it000000.tsv b/TestInterpolate/test/cell_interpolate/testinterpolate-results_interpolate.it000000.tsv similarity index 100% rename from TestInterpolate/test/interpolate/testinterpolate-results_interpolate.it000000.tsv rename to TestInterpolate/test/cell_interpolate/testinterpolate-results_interpolate.it000000.tsv diff --git a/TestInterpolate/test/vertex_interpolate.par b/TestInterpolate/test/vertex_interpolate.par new file mode 100644 index 000000000..78e652743 --- /dev/null +++ b/TestInterpolate/test/vertex_interpolate.par @@ -0,0 +1,50 @@ +ActiveThorns = " + CarpetX + CoordinatesX + IOUtil + TestInterpolate +" + +$nlevels = 3 +$ncells = 32 + +Cactus::cctk_show_schedule = no +Cactus::presync_mode = "mixed-error" + +Cactus::terminate = "time" +Cactus::cctk_final_time = 0 + +CarpetX::verbose = no +CarpetX::poison_undefined_values = yes + +CarpetX::xmin = -1.0 +CarpetX::ymin = -1.0 +CarpetX::zmin = -1.0 + +CarpetX::xmax = +1.0 +CarpetX::ymax = +1.0 +CarpetX::zmax = +1.0 + +CarpetX::ncells_x = $ncells +CarpetX::ncells_y = $ncells +CarpetX::ncells_z = $ncells + +CarpetX::max_num_levels = $nlevels +CarpetX::regrid_every = 16 +Driver::regrid_error_threshold = 5.0 + +CarpetX::prolongation_type = "ddf" + +TestInterpolate::test_vertex_interpolation = yes + +IO::out_dir = $parfile +IO::out_fileinfo = "axis labels" +IO::parfile_write = "no" +IO::out_every = 1 + +CarpetX::out_metadata = no +CarpetX::out_tsv_vars = " + TestInterpolate::reference + TestInterpolate::results_driver_interpolate + TestInterpolate::results_interpolate +" diff --git a/TestInterpolate/test/vertex_interpolate/testinterpolate-reference.it000000.tsv b/TestInterpolate/test/vertex_interpolate/testinterpolate-reference.it000000.tsv new file mode 100644 index 000000000..6cdfcd147 --- /dev/null +++ b/TestInterpolate/test/vertex_interpolate/testinterpolate-reference.it000000.tsv @@ -0,0 +1,2 @@ +# 1:iteration 2:time 3:reference_x_o1_op0[0] 4:reference_x_o1_op0[1] 5:reference_x_o1_op0[2] 6:reference_x_o1_op0[3] 7:reference_y_o1_op0[0] 8:reference_y_o1_op0[1] 9:reference_y_o1_op0[2] 10:reference_y_o1_op0[3] 11:reference_z_o1_op0[0] 12:reference_z_o1_op0[1] 13:reference_z_o1_op0[2] 14:reference_z_o1_op0[3] 15:reference_x_o1_op1[0] 16:reference_x_o1_op1[1] 17:reference_x_o1_op1[2] 18:reference_x_o1_op1[3] 19:reference_y_o1_op1[0] 20:reference_y_o1_op1[1] 21:reference_y_o1_op1[2] 22:reference_y_o1_op1[3] 23:reference_z_o1_op1[0] 24:reference_z_o1_op1[1] 25:reference_z_o1_op1[2] 26:reference_z_o1_op1[3] 27:reference_x_o1_op2[0] 28:reference_x_o1_op2[1] 29:reference_x_o1_op2[2] 30:reference_x_o1_op2[3] 31:reference_y_o1_op2[0] 32:reference_y_o1_op2[1] 33:reference_y_o1_op2[2] 34:reference_y_o1_op2[3] 35:reference_z_o1_op2[0] 36:reference_z_o1_op2[1] 37:reference_z_o1_op2[2] 38:reference_z_o1_op2[3] 39:reference_x_o1_op3[0] 40:reference_x_o1_op3[1] 41:reference_x_o1_op3[2] 42:reference_x_o1_op3[3] 43:reference_y_o1_op3[0] 44:reference_y_o1_op3[1] 45:reference_y_o1_op3[2] 46:reference_y_o1_op3[3] 47:reference_z_o1_op3[0] 48:reference_z_o1_op3[1] 49:reference_z_o1_op3[2] 50:reference_z_o1_op3[3] 51:reference_x_o1_op11[0] 52:reference_x_o1_op11[1] 53:reference_x_o1_op11[2] 54:reference_x_o1_op11[3] 55:reference_y_o1_op11[0] 56:reference_y_o1_op11[1] 57:reference_y_o1_op11[2] 58:reference_y_o1_op11[3] 59:reference_z_o1_op11[0] 60:reference_z_o1_op11[1] 61:reference_z_o1_op11[2] 62:reference_z_o1_op11[3] 63:reference_x_o1_op12[0] 64:reference_x_o1_op12[1] 65:reference_x_o1_op12[2] 66:reference_x_o1_op12[3] 67:reference_y_o1_op12[0] 68:reference_y_o1_op12[1] 69:reference_y_o1_op12[2] 70:reference_y_o1_op12[3] 71:reference_z_o1_op12[0] 72:reference_z_o1_op12[1] 73:reference_z_o1_op12[2] 74:reference_z_o1_op12[3] 75:reference_x_o1_op13[0] 76:reference_x_o1_op13[1] 77:reference_x_o1_op13[2] 78:reference_x_o1_op13[3] 79:reference_y_o1_op13[0] 80:reference_y_o1_op13[1] 81:reference_y_o1_op13[2] 82:reference_y_o1_op13[3] 83:reference_z_o1_op13[0] 84:reference_z_o1_op13[1] 85:reference_z_o1_op13[2] 86:reference_z_o1_op13[3] 87:reference_x_o1_op22[0] 88:reference_x_o1_op22[1] 89:reference_x_o1_op22[2] 90:reference_x_o1_op22[3] 91:reference_y_o1_op22[0] 92:reference_y_o1_op22[1] 93:reference_y_o1_op22[2] 94:reference_y_o1_op22[3] 95:reference_z_o1_op22[0] 96:reference_z_o1_op22[1] 97:reference_z_o1_op22[2] 98:reference_z_o1_op22[3] 99:reference_x_o1_op23[0] 100:reference_x_o1_op23[1] 101:reference_x_o1_op23[2] 102:reference_x_o1_op23[3] 103:reference_y_o1_op23[0] 104:reference_y_o1_op23[1] 105:reference_y_o1_op23[2] 106:reference_y_o1_op23[3] 107:reference_z_o1_op23[0] 108:reference_z_o1_op23[1] 109:reference_z_o1_op23[2] 110:reference_z_o1_op23[3] 111:reference_x_o1_op33[0] 112:reference_x_o1_op33[1] 113:reference_x_o1_op33[2] 114:reference_x_o1_op33[3] 115:reference_y_o1_op33[0] 116:reference_y_o1_op33[1] 117:reference_y_o1_op33[2] 118:reference_y_o1_op33[3] 119:reference_z_o1_op33[0] 120:reference_z_o1_op33[1] 121:reference_z_o1_op33[2] 122:reference_z_o1_op33[3] +0 0.0000000000000000e+00 1.0000000000000001e-01 2.0000000000000001e-01 2.9999999999999999e-01 1.0000000000000001e-01 1.0000000000000001e-01 2.0000000000000001e-01 2.9999999999999999e-01 2.0000000000000001e-01 1.0000000000000001e-01 2.0000000000000001e-01 2.9999999999999999e-01 2.9999999999999999e-01 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 diff --git a/TestInterpolate/test/vertex_interpolate/testinterpolate-results_driver_interpolate.it000000.tsv b/TestInterpolate/test/vertex_interpolate/testinterpolate-results_driver_interpolate.it000000.tsv new file mode 100644 index 000000000..b35affd79 --- /dev/null +++ b/TestInterpolate/test/vertex_interpolate/testinterpolate-results_driver_interpolate.it000000.tsv @@ -0,0 +1,2 @@ +# 1:iteration 2:time 3:driver_interpolate_x_o1_op0[0] 4:driver_interpolate_x_o1_op0[1] 5:driver_interpolate_x_o1_op0[2] 6:driver_interpolate_x_o1_op0[3] 7:driver_interpolate_y_o1_op0[0] 8:driver_interpolate_y_o1_op0[1] 9:driver_interpolate_y_o1_op0[2] 10:driver_interpolate_y_o1_op0[3] 11:driver_interpolate_z_o1_op0[0] 12:driver_interpolate_z_o1_op0[1] 13:driver_interpolate_z_o1_op0[2] 14:driver_interpolate_z_o1_op0[3] 15:driver_interpolate_x_o1_op1[0] 16:driver_interpolate_x_o1_op1[1] 17:driver_interpolate_x_o1_op1[2] 18:driver_interpolate_x_o1_op1[3] 19:driver_interpolate_y_o1_op1[0] 20:driver_interpolate_y_o1_op1[1] 21:driver_interpolate_y_o1_op1[2] 22:driver_interpolate_y_o1_op1[3] 23:driver_interpolate_z_o1_op1[0] 24:driver_interpolate_z_o1_op1[1] 25:driver_interpolate_z_o1_op1[2] 26:driver_interpolate_z_o1_op1[3] 27:driver_interpolate_x_o1_op2[0] 28:driver_interpolate_x_o1_op2[1] 29:driver_interpolate_x_o1_op2[2] 30:driver_interpolate_x_o1_op2[3] 31:driver_interpolate_y_o1_op2[0] 32:driver_interpolate_y_o1_op2[1] 33:driver_interpolate_y_o1_op2[2] 34:driver_interpolate_y_o1_op2[3] 35:driver_interpolate_z_o1_op2[0] 36:driver_interpolate_z_o1_op2[1] 37:driver_interpolate_z_o1_op2[2] 38:driver_interpolate_z_o1_op2[3] 39:driver_interpolate_x_o1_op3[0] 40:driver_interpolate_x_o1_op3[1] 41:driver_interpolate_x_o1_op3[2] 42:driver_interpolate_x_o1_op3[3] 43:driver_interpolate_y_o1_op3[0] 44:driver_interpolate_y_o1_op3[1] 45:driver_interpolate_y_o1_op3[2] 46:driver_interpolate_y_o1_op3[3] 47:driver_interpolate_z_o1_op3[0] 48:driver_interpolate_z_o1_op3[1] 49:driver_interpolate_z_o1_op3[2] 50:driver_interpolate_z_o1_op3[3] 51:driver_interpolate_x_o1_op11[0] 52:driver_interpolate_x_o1_op11[1] 53:driver_interpolate_x_o1_op11[2] 54:driver_interpolate_x_o1_op11[3] 55:driver_interpolate_y_o1_op11[0] 56:driver_interpolate_y_o1_op11[1] 57:driver_interpolate_y_o1_op11[2] 58:driver_interpolate_y_o1_op11[3] 59:driver_interpolate_z_o1_op11[0] 60:driver_interpolate_z_o1_op11[1] 61:driver_interpolate_z_o1_op11[2] 62:driver_interpolate_z_o1_op11[3] 63:driver_interpolate_x_o1_op12[0] 64:driver_interpolate_x_o1_op12[1] 65:driver_interpolate_x_o1_op12[2] 66:driver_interpolate_x_o1_op12[3] 67:driver_interpolate_y_o1_op12[0] 68:driver_interpolate_y_o1_op12[1] 69:driver_interpolate_y_o1_op12[2] 70:driver_interpolate_y_o1_op12[3] 71:driver_interpolate_z_o1_op12[0] 72:driver_interpolate_z_o1_op12[1] 73:driver_interpolate_z_o1_op12[2] 74:driver_interpolate_z_o1_op12[3] 75:driver_interpolate_x_o1_op13[0] 76:driver_interpolate_x_o1_op13[1] 77:driver_interpolate_x_o1_op13[2] 78:driver_interpolate_x_o1_op13[3] 79:driver_interpolate_y_o1_op13[0] 80:driver_interpolate_y_o1_op13[1] 81:driver_interpolate_y_o1_op13[2] 82:driver_interpolate_y_o1_op13[3] 83:driver_interpolate_z_o1_op13[0] 84:driver_interpolate_z_o1_op13[1] 85:driver_interpolate_z_o1_op13[2] 86:driver_interpolate_z_o1_op13[3] 87:driver_interpolate_x_o1_op22[0] 88:driver_interpolate_x_o1_op22[1] 89:driver_interpolate_x_o1_op22[2] 90:driver_interpolate_x_o1_op22[3] 91:driver_interpolate_y_o1_op22[0] 92:driver_interpolate_y_o1_op22[1] 93:driver_interpolate_y_o1_op22[2] 94:driver_interpolate_y_o1_op22[3] 95:driver_interpolate_z_o1_op22[0] 96:driver_interpolate_z_o1_op22[1] 97:driver_interpolate_z_o1_op22[2] 98:driver_interpolate_z_o1_op22[3] 99:driver_interpolate_x_o1_op23[0] 100:driver_interpolate_x_o1_op23[1] 101:driver_interpolate_x_o1_op23[2] 102:driver_interpolate_x_o1_op23[3] 103:driver_interpolate_y_o1_op23[0] 104:driver_interpolate_y_o1_op23[1] 105:driver_interpolate_y_o1_op23[2] 106:driver_interpolate_y_o1_op23[3] 107:driver_interpolate_z_o1_op23[0] 108:driver_interpolate_z_o1_op23[1] 109:driver_interpolate_z_o1_op23[2] 110:driver_interpolate_z_o1_op23[3] 111:driver_interpolate_x_o1_op33[0] 112:driver_interpolate_x_o1_op33[1] 113:driver_interpolate_x_o1_op33[2] 114:driver_interpolate_x_o1_op33[3] 115:driver_interpolate_y_o1_op33[0] 116:driver_interpolate_y_o1_op33[1] 117:driver_interpolate_y_o1_op33[2] 118:driver_interpolate_y_o1_op33[3] 119:driver_interpolate_z_o1_op33[0] 120:driver_interpolate_z_o1_op33[1] 121:driver_interpolate_z_o1_op33[2] 122:driver_interpolate_z_o1_op33[3] +0 0.0000000000000000e+00 1.0000000000000009e-01 1.9999999999999996e-01 3.0000000000000004e-01 1.0000000000000009e-01 1.0000000000000009e-01 1.9999999999999996e-01 3.0000000000000004e-01 1.9999999999999996e-01 1.0000000000000009e-01 1.9999999999999996e-01 3.0000000000000004e-01 3.0000000000000004e-01 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 diff --git a/TestInterpolate/test/vertex_interpolate/testinterpolate-results_interpolate.it000000.tsv b/TestInterpolate/test/vertex_interpolate/testinterpolate-results_interpolate.it000000.tsv new file mode 100644 index 000000000..286f1740e --- /dev/null +++ b/TestInterpolate/test/vertex_interpolate/testinterpolate-results_interpolate.it000000.tsv @@ -0,0 +1,2 @@ +# 1:iteration 2:time 3:interpolate_x_o1_op0[0] 4:interpolate_x_o1_op0[1] 5:interpolate_x_o1_op0[2] 6:interpolate_x_o1_op0[3] 7:interpolate_y_o1_op0[0] 8:interpolate_y_o1_op0[1] 9:interpolate_y_o1_op0[2] 10:interpolate_y_o1_op0[3] 11:interpolate_z_o1_op0[0] 12:interpolate_z_o1_op0[1] 13:interpolate_z_o1_op0[2] 14:interpolate_z_o1_op0[3] 15:interpolate_x_o1_op1[0] 16:interpolate_x_o1_op1[1] 17:interpolate_x_o1_op1[2] 18:interpolate_x_o1_op1[3] 19:interpolate_y_o1_op1[0] 20:interpolate_y_o1_op1[1] 21:interpolate_y_o1_op1[2] 22:interpolate_y_o1_op1[3] 23:interpolate_z_o1_op1[0] 24:interpolate_z_o1_op1[1] 25:interpolate_z_o1_op1[2] 26:interpolate_z_o1_op1[3] 27:interpolate_x_o1_op2[0] 28:interpolate_x_o1_op2[1] 29:interpolate_x_o1_op2[2] 30:interpolate_x_o1_op2[3] 31:interpolate_y_o1_op2[0] 32:interpolate_y_o1_op2[1] 33:interpolate_y_o1_op2[2] 34:interpolate_y_o1_op2[3] 35:interpolate_z_o1_op2[0] 36:interpolate_z_o1_op2[1] 37:interpolate_z_o1_op2[2] 38:interpolate_z_o1_op2[3] 39:interpolate_x_o1_op3[0] 40:interpolate_x_o1_op3[1] 41:interpolate_x_o1_op3[2] 42:interpolate_x_o1_op3[3] 43:interpolate_y_o1_op3[0] 44:interpolate_y_o1_op3[1] 45:interpolate_y_o1_op3[2] 46:interpolate_y_o1_op3[3] 47:interpolate_z_o1_op3[0] 48:interpolate_z_o1_op3[1] 49:interpolate_z_o1_op3[2] 50:interpolate_z_o1_op3[3] 51:interpolate_x_o1_op11[0] 52:interpolate_x_o1_op11[1] 53:interpolate_x_o1_op11[2] 54:interpolate_x_o1_op11[3] 55:interpolate_y_o1_op11[0] 56:interpolate_y_o1_op11[1] 57:interpolate_y_o1_op11[2] 58:interpolate_y_o1_op11[3] 59:interpolate_z_o1_op11[0] 60:interpolate_z_o1_op11[1] 61:interpolate_z_o1_op11[2] 62:interpolate_z_o1_op11[3] 63:interpolate_x_o1_op12[0] 64:interpolate_x_o1_op12[1] 65:interpolate_x_o1_op12[2] 66:interpolate_x_o1_op12[3] 67:interpolate_y_o1_op12[0] 68:interpolate_y_o1_op12[1] 69:interpolate_y_o1_op12[2] 70:interpolate_y_o1_op12[3] 71:interpolate_z_o1_op12[0] 72:interpolate_z_o1_op12[1] 73:interpolate_z_o1_op12[2] 74:interpolate_z_o1_op12[3] 75:interpolate_x_o1_op13[0] 76:interpolate_x_o1_op13[1] 77:interpolate_x_o1_op13[2] 78:interpolate_x_o1_op13[3] 79:interpolate_y_o1_op13[0] 80:interpolate_y_o1_op13[1] 81:interpolate_y_o1_op13[2] 82:interpolate_y_o1_op13[3] 83:interpolate_z_o1_op13[0] 84:interpolate_z_o1_op13[1] 85:interpolate_z_o1_op13[2] 86:interpolate_z_o1_op13[3] 87:interpolate_x_o1_op22[0] 88:interpolate_x_o1_op22[1] 89:interpolate_x_o1_op22[2] 90:interpolate_x_o1_op22[3] 91:interpolate_y_o1_op22[0] 92:interpolate_y_o1_op22[1] 93:interpolate_y_o1_op22[2] 94:interpolate_y_o1_op22[3] 95:interpolate_z_o1_op22[0] 96:interpolate_z_o1_op22[1] 97:interpolate_z_o1_op22[2] 98:interpolate_z_o1_op22[3] 99:interpolate_x_o1_op23[0] 100:interpolate_x_o1_op23[1] 101:interpolate_x_o1_op23[2] 102:interpolate_x_o1_op23[3] 103:interpolate_y_o1_op23[0] 104:interpolate_y_o1_op23[1] 105:interpolate_y_o1_op23[2] 106:interpolate_y_o1_op23[3] 107:interpolate_z_o1_op23[0] 108:interpolate_z_o1_op23[1] 109:interpolate_z_o1_op23[2] 110:interpolate_z_o1_op23[3] 111:interpolate_x_o1_op33[0] 112:interpolate_x_o1_op33[1] 113:interpolate_x_o1_op33[2] 114:interpolate_x_o1_op33[3] 115:interpolate_y_o1_op33[0] 116:interpolate_y_o1_op33[1] 117:interpolate_y_o1_op33[2] 118:interpolate_y_o1_op33[3] 119:interpolate_z_o1_op33[0] 120:interpolate_z_o1_op33[1] 121:interpolate_z_o1_op33[2] 122:interpolate_z_o1_op33[3] +0 0.0000000000000000e+00 1.0000000000000009e-01 1.9999999999999996e-01 3.0000000000000004e-01 1.0000000000000009e-01 1.0000000000000009e-01 1.9999999999999996e-01 3.0000000000000004e-01 1.9999999999999996e-01 1.0000000000000009e-01 1.9999999999999996e-01 3.0000000000000004e-01 3.0000000000000004e-01 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00