Skip to content

Commit 4c8798c

Browse files
committed
fix compilation + clang-tidy for benchmark
Signed-off-by: Martijn Govers <Martijn.Govers@Alliander.com>
1 parent df91dd6 commit 4c8798c

File tree

2 files changed

+111
-66
lines changed

2 files changed

+111
-66
lines changed

tests/benchmark_cpp/benchmark.cpp

+9-2
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,22 @@
88
#include <power_grid_model/common/common.hpp>
99
#include <power_grid_model/common/timer.hpp>
1010
#include <power_grid_model/main_model.hpp>
11+
#include <power_grid_model/math_solver/math_solver.hpp>
1112

1213
#include <iostream>
1314
#include <random>
1415

1516
namespace power_grid_model::benchmark {
1617
namespace {
18+
MathSolverDispatcher const& get_math_solver_dispatcher() {
19+
static constexpr MathSolverDispatcher math_solver_dispatcher{math_solver::math_solver_tag<MathSolver>{}};
20+
return math_solver_dispatcher;
21+
}
1722

1823
struct PowerGridBenchmark {
19-
PowerGridBenchmark() : main_model{std::make_unique<MainModel>(50.0, meta_data::meta_data_gen::meta_data)} {}
24+
PowerGridBenchmark()
25+
: main_model{
26+
std::make_unique<MainModel>(50.0, meta_data::meta_data_gen::meta_data, get_math_solver_dispatcher())} {}
2027

2128
template <symmetry_tag sym>
2229
void run_pf(CalculationMethod calculation_method, CalculationInfo& info, Idx batch_size = -1, Idx threading = -1) {
@@ -70,7 +77,7 @@ struct PowerGridBenchmark {
7077
Timer const t_total(info, 0000, "Total");
7178
{
7279
Timer const t_build(info, 1000, "Build model");
73-
main_model = std::make_unique<MainModel>(50.0, input.get_dataset());
80+
main_model = std::make_unique<MainModel>(50.0, input.get_dataset(), get_math_solver_dispatcher());
7481
}
7582
run_pf<sym>(calculation_method, info);
7683
}

tests/benchmark_cpp/fictional_grid_generator.hpp

+102-64
Original file line numberDiff line numberDiff line change
@@ -183,35 +183,35 @@ class FictionalGridGenerator {
183183
input_.node.push_back(mv_busbar);
184184
for (Idx i = 0; i != option_.n_parallel_hv_mv_transformer; ++i) {
185185
// transformer, 150/10.5kV, 60MVA, uk=20.3%
186-
TransformerInput const transformer{id_gen_++,
187-
id_source_node,
188-
id_mv_busbar,
189-
1,
190-
1,
191-
150.0e3,
192-
10.5e3,
193-
60.0e6,
194-
0.203,
195-
200e3,
196-
0.01,
197-
40e3,
198-
WindingType::wye_n,
199-
WindingType::delta,
200-
5,
201-
BranchSide::from,
202-
0,
203-
-10,
204-
10,
205-
0,
206-
2.5e3,
207-
nan,
208-
nan,
209-
nan,
210-
nan,
211-
nan,
212-
nan,
213-
nan,
214-
nan};
186+
TransformerInput const transformer{.id = id_gen_++,
187+
.from_node = id_source_node,
188+
.to_node = id_mv_busbar,
189+
.from_status = 1,
190+
.to_status = 1,
191+
.u1 = 150.0e3,
192+
.u2 = 10.5e3,
193+
.sn = 60.0e6,
194+
.uk = 0.203,
195+
.pk = 200e3,
196+
.i0 = 0.01,
197+
.p0 = 40e3,
198+
.winding_from = WindingType::wye_n,
199+
.winding_to = WindingType::delta,
200+
.clock = 5,
201+
.tap_side = BranchSide::from,
202+
.tap_pos = 0,
203+
.tap_min = -10,
204+
.tap_max = 10,
205+
.tap_nom = 0,
206+
.tap_size = 2.5e3,
207+
.uk_min = nan,
208+
.uk_max = nan,
209+
.pk_min = nan,
210+
.pk_max = nan,
211+
.r_grounding_from = nan,
212+
.x_grounding_from = nan,
213+
.r_grounding_to = nan,
214+
.x_grounding_to = nan};
215215
input_.transformer.push_back(transformer);
216216
// shunt, Z0 = 0 + j7 ohm
217217
ShuntInput const shunt{
@@ -220,10 +220,23 @@ class FictionalGridGenerator {
220220
}
221221

222222
// template input
223-
NodeInput const mv_node{0, 10.5e3};
223+
NodeInput const mv_node{.id = 0, .u_rated = 10.5e3};
224224
SymLoadGenInput const mv_sym_load{0, 0, 1, LoadGenType::const_i, 0.8e6, 0.6e6};
225225
// cable 3 * 630Al XLPE 10kV, per km
226-
LineInput const mv_line{0, 0, 0, 1, 1, 0.063, 0.103, 0.4e-6, 0.0004, 0.275, 0.101, 0.66e-6, 0.0, 1e3};
226+
LineInput const mv_line{.id = 0,
227+
.from_node = 0,
228+
.to_node = 0,
229+
.from_status = 1,
230+
.to_status = 1,
231+
.r1 = 0.063,
232+
.x1 = 0.103,
233+
.c1 = 0.4e-6,
234+
.tan1 = 0.0004,
235+
.r0 = 0.275,
236+
.x0 = 0.101,
237+
.c0 = 0.66e-6,
238+
.tan0 = 0.0,
239+
.i_n = 1e3};
227240

228241
// random generator
229242
std::uniform_int_distribution<Idx> load_type_gen{0, 2};
@@ -295,49 +308,74 @@ class FictionalGridGenerator {
295308

296309
void generate_lv_grid(ID mv_node, double mv_base_load) {
297310
ID const id_lv_busbar = id_gen_++;
298-
NodeInput const lv_busbar{id_lv_busbar, 400.0};
311+
NodeInput const lv_busbar{.id = id_lv_busbar, .u_rated = 400.0};
299312
input_.node.push_back(lv_busbar);
300313
// transformer, 1500 kVA or mv base load, uk=6%, pk=8.8kW
301-
TransformerInput const transformer{id_gen_++,
302-
mv_node,
303-
id_lv_busbar,
304-
1,
305-
1,
306-
10.5e3,
307-
420.0,
308-
std::max(1500e3, mv_base_load * 1.2),
309-
0.06,
310-
8.8e3,
311-
0.01,
312-
1e3,
313-
WindingType::delta,
314-
WindingType::wye_n,
315-
11,
316-
BranchSide::from,
317-
3,
318-
5,
319-
1,
320-
3,
321-
250.0,
322-
nan,
323-
nan,
324-
nan,
325-
nan,
326-
nan,
327-
nan,
328-
nan,
329-
nan};
314+
TransformerInput const transformer{.id = id_gen_++,
315+
.from_node = mv_node,
316+
.to_node = id_lv_busbar,
317+
.from_status = 1,
318+
.to_status = 1,
319+
.u1 = 10.5e3,
320+
.u2 = 420.0,
321+
.sn = std::max(1500e3, mv_base_load * 1.2),
322+
.uk = 0.06,
323+
.pk = 8.8e3,
324+
.i0 = 0.01,
325+
.p0 = 1e3,
326+
.winding_from = WindingType::delta,
327+
.winding_to = WindingType::wye_n,
328+
.clock = 11,
329+
.tap_side = BranchSide::from,
330+
.tap_pos = 3,
331+
.tap_min = 5,
332+
.tap_max = 1,
333+
.tap_nom = 3,
334+
.tap_size = 250.0,
335+
.uk_min = nan,
336+
.uk_max = nan,
337+
.pk_min = nan,
338+
.pk_max = nan,
339+
.r_grounding_from = nan,
340+
.x_grounding_from = nan,
341+
.r_grounding_to = nan,
342+
.x_grounding_to = nan};
330343
input_.transformer.push_back(transformer);
331344

332345
// template
333346
NodeInput const lv_node{.id = 0, .u_rated = 400.0};
334347
AsymLoadGenInput const lv_asym_load{
335348
0, 0, 1, LoadGenType::const_i, RealValue<asymmetric_t>{0.0}, RealValue<asymmetric_t>{0.0}};
336349
// 4*150 Al, per km
337-
LineInput const lv_main_line{0, 0, 0, 1, 1, 0.206, 0.079, 0.72e-6, 0.0004, 0.94, 0.387, 0.36e-6, 0.0, 300.0};
350+
LineInput const lv_main_line{.id = 0,
351+
.from_node = 0,
352+
.to_node = 0,
353+
.from_status = 1,
354+
.to_status = 1,
355+
.r1 = 0.206,
356+
.x1 = 0.079,
357+
.c1 = 0.72e-6,
358+
.tan1 = 0.0004,
359+
.r0 = 0.94,
360+
.x0 = 0.387,
361+
.c0 = 0.36e-6,
362+
.tan0 = 0.0,
363+
.i_n = 300.0};
338364
// 4*16 Cu, per km
339-
LineInput const lv_connection_line{0, 0, 0, 1, 1, 1.15, 0.096,
340-
0.43e-6, 0.0004, 4.6, 0.408, 0.258e-6, 0.0, 80.0};
365+
LineInput const lv_connection_line{.id = 0,
366+
.from_node = 0,
367+
.to_node = 0,
368+
.from_status = 1,
369+
.to_status = 1,
370+
.r1 = 1.15,
371+
.x1 = 0.096,
372+
.c1 = 0.43e-6,
373+
.tan1 = 0.0004,
374+
.r0 = 4.6,
375+
.x0 = 0.408,
376+
.c0 = 0.258e-6,
377+
.tan0 = 0.0,
378+
.i_n = 80.0};
341379

342380
// generator
343381
std::uniform_int_distribution<Idx> load_type_gen{0, 2};

0 commit comments

Comments
 (0)