MCPcopy Create free account
hub / github.com/SeisSol/SeisSol / main

Function main

postprocessing/validation/XDMFCubeCheck/src/main.cpp:57–211  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

55}
56
57int 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

Callers

nothing calls this directly

Calls 8

pow2Function · 0.85
addOptionMethod · 0.80
addAdditionalOptionMethod · 0.80
normMethod · 0.80
dotMethod · 0.80
parseMethod · 0.45
getArgumentMethod · 0.45
centerMethod · 0.45

Tested by

no test coverage detected