@@ -16,8 +16,7 @@ template <typename Component, class ComponentContainer, typename ResType, typena
1616 requires component_container_c<ComponentContainer, Component> &&
1717 std::invocable<std::remove_cvref_t <ResFunc>, Component const &> &&
1818 std::convertible_to<std::invoke_result_t <ResFunc, Component const &>, ResType>
19- constexpr void register_topo_components (ComponentContainer const & components, std::vector<ResType>& target,
20- ResFunc&& func) {
19+ constexpr void apply_registration (ComponentContainer const & components, std::vector<ResType>& target, ResFunc&& func) {
2120 auto const begin = components.template citer <Component>().begin ();
2221 auto const end = components.template citer <Component>().end ();
2322
@@ -36,17 +35,16 @@ constexpr void register_topology_components(ComponentContainer const& components
3635template <std::same_as<Branch> Component, class ComponentContainer >
3736 requires multi_extended_component_container_c<ComponentContainer, Component, Node>
3837constexpr void register_topology_components (ComponentContainer const & components, ComponentTopology& comp_topo) {
39- detail::register_topo_components<Component>(
40- components, comp_topo.branch_node_idx , [&components](Branch const & branch) {
41- return BranchIdx{get_component_sequence_idx<Node>(components, branch.from_node ()),
42- get_component_sequence_idx<Node>(components, branch.to_node ())};
43- });
38+ detail::apply_registration<Component>(components, comp_topo.branch_node_idx , [&components](Branch const & branch) {
39+ return BranchIdx{get_component_sequence_idx<Node>(components, branch.from_node ()),
40+ get_component_sequence_idx<Node>(components, branch.to_node ())};
41+ });
4442}
4543
4644template <std::same_as<Branch3> Component, class ComponentContainer >
4745 requires multi_extended_component_container_c<ComponentContainer, Component, Node>
4846constexpr void register_topology_components (ComponentContainer const & components, ComponentTopology& comp_topo) {
49- detail::register_topo_components <Component>(
47+ detail::apply_registration <Component>(
5048 components, comp_topo.branch3_node_idx , [&components](Branch3 const & branch3) {
5149 return Branch3Idx{get_component_sequence_idx<Node>(components, branch3.node_1 ()),
5250 get_component_sequence_idx<Node>(components, branch3.node_2 ()),
@@ -57,35 +55,35 @@ constexpr void register_topology_components(ComponentContainer const& components
5755template <std::same_as<Source> Component, class ComponentContainer >
5856 requires multi_extended_component_container_c<ComponentContainer, Component, Node>
5957constexpr void register_topology_components (ComponentContainer const & components, ComponentTopology& comp_topo) {
60- detail::register_topo_components <Component>(
61- components, comp_topo. source_node_idx ,
62- [&components](Source const & source) { return get_component_sequence_idx<Node>(components, source. node ()); });
58+ detail::apply_registration <Component>(components, comp_topo. source_node_idx , [&components](Source const & source) {
59+ return get_component_sequence_idx<Node>( components, source. node ());
60+ });
6361}
6462
6563template <std::same_as<Shunt> Component, class ComponentContainer >
6664 requires multi_extended_component_container_c<ComponentContainer, Component, Node>
6765constexpr void register_topology_components (ComponentContainer const & components, ComponentTopology& comp_topo) {
68- detail::register_topo_components <Component>(
69- components, comp_topo. shunt_node_idx ,
70- [&components](Shunt const & shunt) { return get_component_sequence_idx<Node>(components, shunt. node ()); });
66+ detail::apply_registration <Component>(components, comp_topo. shunt_node_idx , [&components](Shunt const & shunt) {
67+ return get_component_sequence_idx<Node>( components, shunt. node ());
68+ });
7169}
7270
7371template <std::same_as<GenericLoadGen> Component, class ComponentContainer >
7472 requires multi_extended_component_container_c<ComponentContainer, Component, Node>
7573constexpr void register_topology_components (ComponentContainer const & components, ComponentTopology& comp_topo) {
76- detail::register_topo_components <Component>(
77- components, comp_topo. load_gen_node_idx , [&components](GenericLoadGen const & load_gen) {
78- return get_component_sequence_idx<Node>(components, load_gen.node ());
79- });
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+ });
8078
81- detail::register_topo_components <Component>(components, comp_topo.load_gen_type ,
82- [](GenericLoadGen const & load_gen) { return load_gen.type (); });
79+ detail::apply_registration <Component>(components, comp_topo.load_gen_type ,
80+ [](GenericLoadGen const & load_gen) { return load_gen.type (); });
8381}
8482
8583template <std::same_as<GenericVoltageSensor> Component, class ComponentContainer >
8684 requires multi_extended_component_container_c<ComponentContainer, Component, Node>
8785constexpr void register_topology_components (ComponentContainer const & components, ComponentTopology& comp_topo) {
88- detail::register_topo_components <Component>(
86+ detail::apply_registration <Component>(
8987 components, comp_topo.voltage_sensor_node_idx , [&components](GenericVoltageSensor const & voltage_sensor) {
9088 return get_component_sequence_idx<Node>(components, voltage_sensor.measured_object ());
9189 });
@@ -95,7 +93,7 @@ template <std::same_as<GenericPowerSensor> Component, class ComponentContainer>
9593 requires multi_extended_component_container_c<ComponentContainer, Component, Branch, Source, Shunt, GenericLoadGen,
9694 Branch3, Node>
9795constexpr void register_topology_components (ComponentContainer const & components, ComponentTopology& comp_topo) {
98- detail::register_topo_components <Component>(
96+ detail::apply_registration <Component>(
9997 components, comp_topo.power_sensor_object_idx , [&components](GenericPowerSensor const & power_sensor) {
10098 using enum MeasuredTerminalType;
10199
@@ -128,15 +126,15 @@ constexpr void register_topology_components(ComponentContainer const& components
128126 }
129127 });
130128
131- detail::register_topo_components <Component>(
129+ detail::apply_registration <Component>(
132130 components, comp_topo.power_sensor_terminal_type ,
133131 [](GenericPowerSensor const & power_sensor) { return power_sensor.get_terminal_type (); });
134132}
135133
136134template <std::same_as<GenericCurrentSensor> Component, class ComponentContainer >
137135 requires multi_extended_component_container_c<ComponentContainer, Component, Branch, Branch3>
138136constexpr void register_topology_components (ComponentContainer const & components, ComponentTopology& comp_topo) {
139- detail::register_topo_components <Component>(
137+ detail::apply_registration <Component>(
140138 components, comp_topo.current_sensor_object_idx , [&components](GenericCurrentSensor const & current_sensor) {
141139 using enum MeasuredTerminalType;
142140
@@ -159,15 +157,15 @@ constexpr void register_topology_components(ComponentContainer const& components
159157 }
160158 });
161159
162- detail::register_topo_components <Component>(
160+ detail::apply_registration <Component>(
163161 components, comp_topo.current_sensor_terminal_type ,
164162 [](GenericCurrentSensor const & current_sensor) { return current_sensor.get_terminal_type (); });
165163}
166164
167165template <std::derived_from<Regulator> Component, class ComponentContainer >
168166 requires multi_extended_component_container_c<ComponentContainer, Component, Branch, Branch3>
169167constexpr void register_topology_components (ComponentContainer const & components, ComponentTopology& comp_topo) {
170- detail::register_topo_components <Component>(
168+ detail::apply_registration <Component>(
171169 components, comp_topo.regulated_object_idx , [&components](Regulator const & regulator) {
172170 switch (regulator.regulated_object_type ()) {
173171 case ComponentType::branch:
@@ -179,37 +177,36 @@ constexpr void register_topology_components(ComponentContainer const& components
179177 }
180178 });
181179
182- detail::register_topo_components<Component>(
183- components, comp_topo.regulated_object_type ,
184- [](Regulator const & regulator) { return regulator.regulated_object_type (); });
180+ detail::apply_registration<Component>(components, comp_topo.regulated_object_type ,
181+ [](Regulator const & regulator) { return regulator.regulated_object_type (); });
185182}
186183
187184// TODO Rename register_topo_components if this is combined
188185template <std::same_as<Branch> Component, class ComponentContainer >
189186 requires component_container_c<ComponentContainer, Component>
190187constexpr void register_connections_components (ComponentContainer components, ComponentConnections& comp_conn) {
191- detail::register_topo_components <Component>(components, comp_conn.branch_connected , [](Branch const & branch) {
188+ detail::apply_registration <Component>(components, comp_conn.branch_connected , [](Branch const & branch) {
192189 return BranchConnected{static_cast <IntS>(branch.from_status ()), static_cast <IntS>(branch.to_status ())};
193190 });
194- detail::register_topo_components <Component>(components, comp_conn.branch_phase_shift ,
195- [](Branch const & branch) { return branch.phase_shift (); });
191+ detail::apply_registration <Component>(components, comp_conn.branch_phase_shift ,
192+ [](Branch const & branch) { return branch.phase_shift (); });
196193}
197194template <std::same_as<Branch3> Component, class ComponentContainer >
198195 requires component_container_c<ComponentContainer, Component>
199196constexpr void register_connections_components (ComponentContainer components, ComponentConnections& comp_conn) {
200- detail::register_topo_components <Component>(components, comp_conn.branch3_connected , [](Branch3 const & branch3) {
197+ detail::apply_registration <Component>(components, comp_conn.branch3_connected , [](Branch3 const & branch3) {
201198 return Branch3Connected{static_cast <IntS>(branch3.status_1 ()), static_cast <IntS>(branch3.status_2 ()),
202199 static_cast <IntS>(branch3.status_3 ())};
203200 });
204- detail::register_topo_components <Component>(components, comp_conn.branch3_phase_shift ,
205- [](Branch3 const & branch3) { return branch3.phase_shift (); });
201+ detail::apply_registration <Component>(components, comp_conn.branch3_phase_shift ,
202+ [](Branch3 const & branch3) { return branch3.phase_shift (); });
206203}
207204
208205template <std::same_as<Source> Component, class ComponentContainer >
209206 requires component_container_c<ComponentContainer, Component>
210207constexpr void register_connections_components (ComponentContainer components, ComponentConnections& comp_conn) {
211- detail::register_topo_components <Component>(components, comp_conn.source_connected ,
212- [](Source const & source) { return source.status (); });
208+ detail::apply_registration <Component>(components, comp_conn.source_connected ,
209+ [](Source const & source) { return source.status (); });
213210}
214211
215212template <typename ComponentContainer>
0 commit comments