Skip to content

Commit f339e21

Browse files
committed
move to detail namespace
Signed-off-by: Nitish Bharambe <[email protected]>
1 parent ca5ae3f commit f339e21

File tree

1 file changed

+67
-68
lines changed
  • power_grid_model_c/power_grid_model/include/power_grid_model/main_core

1 file changed

+67
-68
lines changed

power_grid_model_c/power_grid_model/include/power_grid_model/main_core/topology.hpp

Lines changed: 67 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ constexpr void apply_registration(ComponentContainer const& components, std::vec
2424
std::transform(begin, end, target.begin(), std::forward<ResFunc>(func));
2525
}
2626

27-
} // namespace detail
28-
2927
template <std::same_as<Node> Component, class ComponentContainer>
3028
requires component_container_c<ComponentContainer, Component>
3129
constexpr void register_topology_components(ComponentContainer const& components, ComponentTopology& comp_topo) {
@@ -35,7 +33,7 @@ constexpr void register_topology_components(ComponentContainer const& components
3533
template <std::same_as<Branch> Component, class ComponentContainer>
3634
requires multi_component_container_c<ComponentContainer, Component, Node>
3735
constexpr void register_topology_components(ComponentContainer const& components, ComponentTopology& comp_topo) {
38-
detail::apply_registration<Component>(components, comp_topo.branch_node_idx, [&components](Branch const& branch) {
36+
apply_registration<Component>(components, comp_topo.branch_node_idx, [&components](Branch const& branch) {
3937
return BranchIdx{get_component_sequence_idx<Node>(components, branch.from_node()),
4038
get_component_sequence_idx<Node>(components, branch.to_node())};
4139
});
@@ -44,46 +42,45 @@ constexpr void register_topology_components(ComponentContainer const& components
4442
template <std::same_as<Branch3> Component, class ComponentContainer>
4543
requires multi_component_container_c<ComponentContainer, Component, Node>
4644
constexpr void register_topology_components(ComponentContainer const& components, ComponentTopology& comp_topo) {
47-
detail::apply_registration<Component>(
48-
components, comp_topo.branch3_node_idx, [&components](Branch3 const& branch3) {
49-
return Branch3Idx{get_component_sequence_idx<Node>(components, branch3.node_1()),
50-
get_component_sequence_idx<Node>(components, branch3.node_2()),
51-
get_component_sequence_idx<Node>(components, branch3.node_3())};
52-
});
45+
apply_registration<Component>(components, comp_topo.branch3_node_idx, [&components](Branch3 const& branch3) {
46+
return Branch3Idx{get_component_sequence_idx<Node>(components, branch3.node_1()),
47+
get_component_sequence_idx<Node>(components, branch3.node_2()),
48+
get_component_sequence_idx<Node>(components, branch3.node_3())};
49+
});
5350
}
5451

5552
template <std::same_as<Source> Component, class ComponentContainer>
5653
requires multi_component_container_c<ComponentContainer, Component, Node>
5754
constexpr void register_topology_components(ComponentContainer const& components, ComponentTopology& comp_topo) {
58-
detail::apply_registration<Component>(components, comp_topo.source_node_idx, [&components](Source const& source) {
55+
apply_registration<Component>(components, comp_topo.source_node_idx, [&components](Source const& source) {
5956
return get_component_sequence_idx<Node>(components, source.node());
6057
});
6158
}
6259

6360
template <std::same_as<Shunt> Component, class ComponentContainer>
6461
requires multi_component_container_c<ComponentContainer, Component, Node>
6562
constexpr void register_topology_components(ComponentContainer const& components, ComponentTopology& comp_topo) {
66-
detail::apply_registration<Component>(components, comp_topo.shunt_node_idx, [&components](Shunt const& shunt) {
63+
apply_registration<Component>(components, comp_topo.shunt_node_idx, [&components](Shunt const& shunt) {
6764
return get_component_sequence_idx<Node>(components, shunt.node());
6865
});
6966
}
7067

7168
template <std::same_as<GenericLoadGen> Component, class ComponentContainer>
7269
requires multi_component_container_c<ComponentContainer, Component, Node>
7370
constexpr void register_topology_components(ComponentContainer const& components, ComponentTopology& comp_topo) {
74-
detail::apply_registration<Component>(components, comp_topo.load_gen_node_idx,
75-
[&components](GenericLoadGen const& load_gen) {
76-
return get_component_sequence_idx<Node>(components, load_gen.node());
77-
});
71+
apply_registration<Component>(components, comp_topo.load_gen_node_idx,
72+
[&components](GenericLoadGen const& load_gen) {
73+
return get_component_sequence_idx<Node>(components, load_gen.node());
74+
});
7875

79-
detail::apply_registration<Component>(components, comp_topo.load_gen_type,
80-
[](GenericLoadGen const& load_gen) { return load_gen.type(); });
76+
apply_registration<Component>(components, comp_topo.load_gen_type,
77+
[](GenericLoadGen const& load_gen) { return load_gen.type(); });
8178
}
8279

8380
template <std::same_as<GenericVoltageSensor> Component, class ComponentContainer>
8481
requires multi_component_container_c<ComponentContainer, Component, Node>
8582
constexpr void register_topology_components(ComponentContainer const& components, ComponentTopology& comp_topo) {
86-
detail::apply_registration<Component>(
83+
apply_registration<Component>(
8784
components, comp_topo.voltage_sensor_node_idx, [&components](GenericVoltageSensor const& voltage_sensor) {
8885
return get_component_sequence_idx<Node>(components, voltage_sensor.measured_object());
8986
});
@@ -93,7 +90,7 @@ template <std::same_as<GenericPowerSensor> Component, class ComponentContainer>
9390
requires multi_component_container_c<ComponentContainer, Component, Branch, Source, Shunt, GenericLoadGen, Branch3,
9491
Node>
9592
constexpr void register_topology_components(ComponentContainer const& components, ComponentTopology& comp_topo) {
96-
detail::apply_registration<Component>(
93+
apply_registration<Component>(
9794
components, comp_topo.power_sensor_object_idx, [&components](GenericPowerSensor const& power_sensor) {
9895
using enum MeasuredTerminalType;
9996

@@ -126,46 +123,46 @@ constexpr void register_topology_components(ComponentContainer const& components
126123
}
127124
});
128125

129-
detail::apply_registration<Component>(
126+
apply_registration<Component>(
130127
components, comp_topo.power_sensor_terminal_type,
131128
[](GenericPowerSensor const& power_sensor) { return power_sensor.get_terminal_type(); });
132129
}
133130

134131
template <std::same_as<GenericCurrentSensor> Component, class ComponentContainer>
135132
requires multi_component_container_c<ComponentContainer, Component, Branch, Branch3>
136133
constexpr void register_topology_components(ComponentContainer const& components, ComponentTopology& comp_topo) {
137-
detail::apply_registration<Component>(
138-
components, comp_topo.current_sensor_object_idx, [&components](GenericCurrentSensor const& current_sensor) {
139-
using enum MeasuredTerminalType;
140-
141-
auto const measured_object = current_sensor.measured_object();
142-
143-
switch (current_sensor.get_terminal_type()) {
144-
case branch_from:
145-
[[fallthrough]];
146-
case branch_to:
147-
return get_component_sequence_idx<Branch>(components, measured_object);
148-
case branch3_1:
149-
[[fallthrough]];
150-
case branch3_2:
151-
[[fallthrough]];
152-
case branch3_3:
153-
return get_component_sequence_idx<Branch3>(components, measured_object);
154-
default:
155-
throw MissingCaseForEnumError("Current sensor idx to seq transformation",
156-
current_sensor.get_terminal_type());
157-
}
158-
});
159-
160-
detail::apply_registration<Component>(
134+
apply_registration<Component>(components, comp_topo.current_sensor_object_idx,
135+
[&components](GenericCurrentSensor const& current_sensor) {
136+
using enum MeasuredTerminalType;
137+
138+
auto const measured_object = current_sensor.measured_object();
139+
140+
switch (current_sensor.get_terminal_type()) {
141+
case branch_from:
142+
[[fallthrough]];
143+
case branch_to:
144+
return get_component_sequence_idx<Branch>(components, measured_object);
145+
case branch3_1:
146+
[[fallthrough]];
147+
case branch3_2:
148+
[[fallthrough]];
149+
case branch3_3:
150+
return get_component_sequence_idx<Branch3>(components, measured_object);
151+
default:
152+
throw MissingCaseForEnumError("Current sensor idx to seq transformation",
153+
current_sensor.get_terminal_type());
154+
}
155+
});
156+
157+
apply_registration<Component>(
161158
components, comp_topo.current_sensor_terminal_type,
162159
[](GenericCurrentSensor const& current_sensor) { return current_sensor.get_terminal_type(); });
163160
}
164161

165162
template <std::derived_from<Regulator> Component, class ComponentContainer>
166163
requires multi_component_container_c<ComponentContainer, Component, Branch, Branch3>
167164
constexpr void register_topology_components(ComponentContainer const& components, ComponentTopology& comp_topo) {
168-
detail::apply_registration<Component>(
165+
apply_registration<Component>(
169166
components, comp_topo.regulated_object_idx, [&components](Regulator const& regulator) {
170167
switch (regulator.regulated_object_type()) {
171168
case ComponentType::branch:
@@ -177,62 +174,64 @@ constexpr void register_topology_components(ComponentContainer const& components
177174
}
178175
});
179176

180-
detail::apply_registration<Component>(components, comp_topo.regulated_object_type,
181-
[](Regulator const& regulator) { return regulator.regulated_object_type(); });
177+
apply_registration<Component>(components, comp_topo.regulated_object_type,
178+
[](Regulator const& regulator) { return regulator.regulated_object_type(); });
182179
}
183180

184181
template <std::same_as<Branch> Component, class ComponentContainer>
185182
requires component_container_c<ComponentContainer, Component>
186183
constexpr void register_connections_components(ComponentContainer components, ComponentConnections& comp_conn) {
187-
detail::apply_registration<Component>(components, comp_conn.branch_connected, [](Branch const& branch) {
184+
apply_registration<Component>(components, comp_conn.branch_connected, [](Branch const& branch) {
188185
return BranchConnected{static_cast<IntS>(branch.from_status()), static_cast<IntS>(branch.to_status())};
189186
});
190-
detail::apply_registration<Component>(components, comp_conn.branch_phase_shift,
191-
[](Branch const& branch) { return branch.phase_shift(); });
187+
apply_registration<Component>(components, comp_conn.branch_phase_shift,
188+
[](Branch const& branch) { return branch.phase_shift(); });
192189
}
193190
template <std::same_as<Branch3> Component, class ComponentContainer>
194191
requires component_container_c<ComponentContainer, Component>
195192
constexpr void register_connections_components(ComponentContainer components, ComponentConnections& comp_conn) {
196-
detail::apply_registration<Component>(components, comp_conn.branch3_connected, [](Branch3 const& branch3) {
193+
apply_registration<Component>(components, comp_conn.branch3_connected, [](Branch3 const& branch3) {
197194
return Branch3Connected{static_cast<IntS>(branch3.status_1()), static_cast<IntS>(branch3.status_2()),
198195
static_cast<IntS>(branch3.status_3())};
199196
});
200-
detail::apply_registration<Component>(components, comp_conn.branch3_phase_shift,
201-
[](Branch3 const& branch3) { return branch3.phase_shift(); });
197+
apply_registration<Component>(components, comp_conn.branch3_phase_shift,
198+
[](Branch3 const& branch3) { return branch3.phase_shift(); });
202199
}
203200

204201
template <std::same_as<Source> Component, class ComponentContainer>
205202
requires component_container_c<ComponentContainer, Component>
206203
constexpr void register_connections_components(ComponentContainer components, ComponentConnections& comp_conn) {
207-
detail::apply_registration<Component>(components, comp_conn.source_connected,
208-
[](Source const& source) { return source.status(); });
204+
apply_registration<Component>(components, comp_conn.source_connected,
205+
[](Source const& source) { return source.status(); });
209206
}
210207

208+
} // namespace detail
209+
211210
template <typename ComponentContainer>
212211
requires multi_component_container_c<ComponentContainer, Branch, Branch3, Source, Shunt, GenericLoadGen,
213212
GenericVoltageSensor, GenericPowerSensor, GenericCurrentSensor, Regulator>
214213
ComponentTopology construct_topology(ComponentContainer const& components) {
215214
ComponentTopology comp_topo;
216-
register_topology_components<Node>(components, comp_topo);
217-
register_topology_components<Branch>(components, comp_topo);
218-
register_topology_components<Branch3>(components, comp_topo);
219-
register_topology_components<Source>(components, comp_topo);
220-
register_topology_components<Shunt>(components, comp_topo);
221-
register_topology_components<GenericLoadGen>(components, comp_topo);
222-
register_topology_components<GenericVoltageSensor>(components, comp_topo);
223-
register_topology_components<GenericPowerSensor>(components, comp_topo);
224-
register_topology_components<GenericCurrentSensor>(components, comp_topo);
225-
register_topology_components<Regulator>(components, comp_topo);
215+
detail::register_topology_components<Node>(components, comp_topo);
216+
detail::register_topology_components<Branch>(components, comp_topo);
217+
detail::register_topology_components<Branch3>(components, comp_topo);
218+
detail::register_topology_components<Source>(components, comp_topo);
219+
detail::register_topology_components<Shunt>(components, comp_topo);
220+
detail::register_topology_components<GenericLoadGen>(components, comp_topo);
221+
detail::register_topology_components<GenericVoltageSensor>(components, comp_topo);
222+
detail::register_topology_components<GenericPowerSensor>(components, comp_topo);
223+
detail::register_topology_components<GenericCurrentSensor>(components, comp_topo);
224+
detail::register_topology_components<Regulator>(components, comp_topo);
226225
return comp_topo;
227226
}
228227

229228
template <typename ComponentContainer>
230229
requires multi_component_container_c<ComponentContainer, Branch, Branch3, Source>
231230
ComponentConnections construct_components_connections(ComponentContainer const& components) {
232231
ComponentConnections comp_conn;
233-
register_connections_components<Branch>(components, comp_conn);
234-
register_connections_components<Branch3>(components, comp_conn);
235-
register_connections_components<Source>(components, comp_conn);
232+
detail::register_connections_components<Branch>(components, comp_conn);
233+
detail::register_connections_components<Branch3>(components, comp_conn);
234+
detail::register_connections_components<Source>(components, comp_conn);
236235
return comp_conn;
237236
}
238237

0 commit comments

Comments
 (0)