MCPcopy Create free account
hub / github.com/PowerGridModel/power-grid-model / main

Function main

tests/benchmark_cpp/benchmark.cpp:240–496  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

238} // namespace power_grid_model::benchmark
239
240int main(int /* argc */, char** /* argv */) {
241 using enum power_grid_model::CalculationType;
242 using enum power_grid_model::CalculationMethod;
243 using enum power_grid_model::CalculationSymmetry;
244 using enum power_grid_model::OptimizerType;
245
246 power_grid_model::benchmark::PowerGridBenchmark benchmarker{};
247 power_grid_model::benchmark::Option option{};
248
249#ifndef NDEBUG
250 option.n_node_total_specified = 200;
251 option.n_mv_feeder = 3;
252 option.n_node_per_mv_feeder = 6;
253 option.n_lv_feeder = 2;
254 option.n_connection_per_lv_feeder = 4;
255 power_grid_model::Idx constexpr batch_size = 10;
256#else
257 option.n_node_total_specified = 1500;
258 option.n_mv_feeder = 20;
259 option.n_node_per_mv_feeder = 10;
260 option.n_lv_feeder = 10;
261 option.n_connection_per_lv_feeder = 40;
262 power_grid_model::Idx constexpr batch_size = 1000;
263#endif
264
265 std::cout << "\n\n##### BENCHMARK POWER FLOW #####\n\n";
266 option.has_measurements = false;
267 option.has_fault = false;
268 option.has_tap_changer = false;
269
270 // radial
271 option.has_mv_ring = false;
272 option.has_lv_ring = false;
273 benchmarker.run_benchmark(
274 option,
275 {.calculation_type = power_flow, .calculation_symmetry = symmetric, .calculation_method = newton_raphson},
276 batch_size);
277 benchmarker.run_benchmark(option,
278 {.calculation_type = power_flow,
279 .calculation_symmetry = symmetric,
280 .calculation_method = newton_raphson,
281 .threading = 6},
282 batch_size);
283 benchmarker.run_benchmark(
284 option, {.calculation_type = power_flow, .calculation_symmetry = symmetric, .calculation_method = linear});
285 benchmarker.run_benchmark(
286 option,
287 {.calculation_type = power_flow, .calculation_symmetry = symmetric, .calculation_method = linear_current});
288 benchmarker.run_benchmark(option, {.calculation_type = power_flow,
289 .calculation_symmetry = symmetric,
290 .calculation_method = iterative_current,
291 .max_iter = 100});
292 benchmarker.run_benchmark(
293 option,
294 {.calculation_type = power_flow, .calculation_symmetry = asymmetric, .calculation_method = newton_raphson});
295 benchmarker.run_benchmark(
296 option, {.calculation_type = power_flow, .calculation_symmetry = asymmetric, .calculation_method = linear});
297 benchmarker.run_benchmark(

Callers

nothing calls this directly

Calls 1

run_benchmarkMethod · 0.80

Tested by

no test coverage detected