| 55 | } |
| 56 | |
| 57 | int main(int argc, char* argv[]) |
| 58 | { |
| 59 | utils::Args args; |
| 60 | args.addOption("diff", 'd', "Maximum allowed difference (Default 0.001)", utils::Args::Required, false); |
| 61 | args.addOption("verbose", 'V', "Enable verbose output", utils::Args::No, false); |
| 62 | args.addAdditionalOption("output.h5", "The SeisSol wave field output file"); |
| 63 | |
| 64 | switch (args.parse(argc, argv)) { |
| 65 | case utils::Args::Error: |
| 66 | return 1; |
| 67 | case utils::Args::Help: |
| 68 | return 127; |
| 69 | default: |
| 70 | break; |
| 71 | } |
| 72 | |
| 73 | bool verbose = args.getArgument("verbose", false); |
| 74 | |
| 75 | hid_t hdfFile = H5Fopen(args.getAdditionalArgument<const char*>("output.h5"), |
| 76 | H5F_ACC_RDONLY, H5P_DEFAULT); |
| 77 | |
| 78 | // Read vertices |
| 79 | hid_t vertData = H5Dopen(hdfFile, "/geometry", H5P_DEFAULT); |
| 80 | hid_t space = H5Dget_space(vertData); |
| 81 | hsize_t dims[2]; // Assuming to dimensions |
| 82 | H5Sget_simple_extent_dims(space, dims, 0L); |
| 83 | |
| 84 | double* vertices = new double[dims[0]*dims[1]]; |
| 85 | H5Dread(vertData, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, vertices); |
| 86 | |
| 87 | H5Sclose(space); |
| 88 | H5Dclose(vertData); |
| 89 | |
| 90 | // Read cells |
| 91 | hid_t cellData = H5Dopen(hdfFile, "/connect", H5P_DEFAULT); |
| 92 | space = H5Dget_space(cellData); |
| 93 | H5Sget_simple_extent_dims(space, dims, 0L); |
| 94 | |
| 95 | unsigned long* cells = new unsigned long[dims[0]*dims[1]]; |
| 96 | H5Dread(cellData, H5T_NATIVE_ULONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, cells); |
| 97 | |
| 98 | hsize_t numCells = dims[0]; |
| 99 | |
| 100 | H5Sclose(space); |
| 101 | H5Dclose(cellData); |
| 102 | |
| 103 | // Read the 9 variables |
| 104 | double* var[9]; |
| 105 | const char* varNames[9] = {"/sigma_xx", "/sigma_yy", "/sigma_zz", "/sigma_xy", "/sigma_yz", "/sigma_xz", "/u", "/v", "/w"}; |
| 106 | |
| 107 | hid_t memSpace = H5Screate_simple(1, &numCells, &numCells); |
| 108 | H5Sselect_all(memSpace); |
| 109 | |
| 110 | for (unsigned int i = 0; i < 9; i++) { |
| 111 | hid_t varData = H5Dopen(hdfFile, varNames[i], H5P_DEFAULT); |
| 112 | space = H5Dget_space(varData); |
| 113 | H5Sget_simple_extent_dims(space, dims, 0L); |
| 114 |
nothing calls this directly
no test coverage detected