87 const CouplingMap& coupling_map,
88 mpi::communicator* world);
98 void OnBendersStart(
const SubproblemsMapPtr& subproblem_map,
103 void OnBendersIterationStart()
override;
104 void OnBendersIterationEnd()
override;
109 void OnBendersEnd()
override;
114 void OnBendersMasterResolutionEnd(std::map<std::string, double>& master_out,
115 int& num_iter)
override;
120 void OnBendersMasterResolutionStart()
override;
125 void OnBendersMicroIterationStart()
override;
130 void OnBendersMicroIterationEnd(std::string sub_name,
132 std::string solving_time,
134 int num_micro_iter)
override;
136 void OnBendersSubResolutionStart()
override;
137 void OnBendersSubResolutionEnd(std::string sub_name,
int num_micro_iter)
override;
145 void SetSubProblemIDs(
const char** subs_ids,
int n_subs);
166 void BuildSubproblemConstraintsManagerMap(
const SubproblemsMapPtr& subproblem_map,
170 void read_micro_iteration_config_file();
172 void read_variables_to_follow_ids();
173 void read_variable_names_to_follow();
174 void build_variables_to_follow_indices_vector();
175 const std::map<std::string, std::vector<int>>& get_variables_to_follow_indeices_vector();
177 mpi::communicator* _world;
184 on_Benders_start_Func onBendersStartPlugin_;
185 on_Benders_end_Func OnBendersEndPlugin_;
186 on_Benders_iteration_start OnBendersIterationStart_;
187 on_Benders_iteration_end OnBendersIterationEnd_;
188 on_Benders_master_resolution_start OnBendersMasterResolutionStart_;
189 on_Benders_master_resolution_end OnBendersMasterResolutionEnd_;
190 on_Benders_micro_iteration_start OnBendersMicroIterationStart_;
191 on_Benders_micro_iteration_end OnBendersMicroIterationEnd_;
192 on_Benders_sub_resolution_start OnBendersSubResolutionStart_;
193 on_Benders_sub_resolution_end OnBendersSubResolutionEnd_;
194 std::map<std::string, std::vector<int>> variables_to_follow_indices_per_sub_;
196 std::filesystem::path input_root_;
197 std::filesystem::path variables_dictionary_path_;
199 std::map<std::string, std::string> binary_variables_ids_map_;
200 std::vector<std::string> sub_ids_storage_;
201 std::vector<const char*> sub_ids_ptrs_;
202 std::map<std::string, std::vector<std::string>> added_constraints_per_sub_;
203 std::map<std::string, std::string> micro_iterations_config_;
204 std::vector<std::string> variables_to_follow_;
205 CouplingMap coupling_map_;
206 CouplingMap constraints_coupling_map_;
207 SubProblemConstraintMap subproblem_constraint_map_;
208 SubproblemConstraintsManagerPtrMap constraints_map_;