| 4 | |
| 5 | |
| 6 | int main(int argc, char* argv[]) { |
| 7 | std::stringstream kernelHelp; |
| 8 | auto allowedKernels = Aux::getAllowedKernels(); |
| 9 | kernelHelp << "Kernel: "; |
| 10 | for (const auto& kernel: allowedKernels) { |
| 11 | kernelHelp << ", " << kernel; |
| 12 | } |
| 13 | |
| 14 | utils::Args args("The SeisSol proxy is used to benchmark the kernels used in the SeisSol earthquake simulation software."); |
| 15 | args.addAdditionalOption("cells", "Number of cells"); |
| 16 | args.addAdditionalOption("timesteps", "Number of timesteps"); |
| 17 | args.addAdditionalOption("kernel", kernelHelp.str()); |
| 18 | |
| 19 | if (args.parse(argc, argv) != utils::Args::Success) { |
| 20 | return -1; |
| 21 | } |
| 22 | |
| 23 | ProxyConfig config{}; |
| 24 | config.cells = args.getAdditionalArgument<unsigned>("cells"); |
| 25 | config.timesteps = args.getAdditionalArgument<unsigned>("timesteps"); |
| 26 | auto kernelStr = args.getAdditionalArgument<std::string>("kernel"); |
| 27 | |
| 28 | try { |
| 29 | config.kernel = Aux::str2kernel(kernelStr); |
| 30 | } |
| 31 | catch (std::runtime_error& error) { |
| 32 | std::cerr << error.what() << std::endl; |
| 33 | return -1; |
| 34 | } |
| 35 | |
| 36 | auto output = runProxy(config); |
| 37 | Aux::displayOutput(output, kernelStr); |
| 38 | return 0; |
| 39 | } |
nothing calls this directly
no test coverage detected