Antares Xpansion
Investment simulations for Antares studies
Loading...
Searching...
No Matches
BendersFactory.h
1#pragma once
2#include <antares-xpansion/benders/benders_core/BendersBase.h>
3#include <antares-xpansion/benders/benders_core/BendersMethod.h>
4#include <antares-xpansion/benders/benders_core/CriterionInputDataReader.h>
5#include <antares-xpansion/benders/benders_core/common.h>
6#include <memory>
7#include <optional>
8#include <variant>
9
12
13namespace boost::mpi
14{
15class communicator;
16class environment;
17} // namespace boost::mpi
18
19namespace Output
20{
21class OutputWriter;
22}
23class ILogger;
26
28{
29public:
31 {
32 std::unique_ptr<BendersBase> benders{nullptr};
35 criterion_input_data;
36 BENDERSMETHOD method{BENDERSMETHOD::BENDERS};
37 };
38
40 {
41 std::shared_ptr<ILogger> logger;
42 std::shared_ptr<Output::OutputWriter> writer;
43 std::shared_ptr<MathLoggerDriver> math_log_driver;
44 BendersLoggerBase& benders_loggers;
45 };
46
47 BendersFactory(const SimulationOptions& options,
48 boost::mpi::communicator* world,
49 Dependencies dependencies);
50 auto PrepareForExecution(bool outer_loop) -> std::optional<BendersEnvironment>;
51
52private:
53 auto ConfigureBenders(const BendersBaseOptions& benders_options,
54 const CouplingMap& coupling_map) -> BendersEnvironment;
55 [[nodiscard]] std::variant<Benders::Criterion::CriterionInputData,
57 ProcessCriterionInput();
58 Benders::Criterion::CriterionInputData BuildPatternsUsingAreaFile();
59 std::set<std::string> ReadAreaFile();
60 void ConfigureSolverLog(BendersBase* benders);
61
62 const SimulationOptions& options_;
63 Dependencies dependencies_;
64 boost::mpi::communicator* world_ = nullptr;
65 int rank = 0;
66 BENDERSMETHOD method_;
67 std::string context_ = bendersmethod_to_string(BENDERSMETHOD::BENDERS);
68 static constexpr const char* const LOLD_FILE = "LOLD.txt";
69};
Definition BendersBase.h:38
Definition BendersFactory.h:28
this class contains all data read from user input file
Definition CriterionInputDataReader.h:83
this class contains all data read from user input file
Definition CriterionInputDataReader.h:103
abstract class for operational logs
Definition ILogger.h:184
Definition BendersMathLogger.h:213
Definition SimulationOptions.h:6
Definition common.h:205
Definition BendersFactory.h:31
Definition BendersFactory.h:40
Definition ILogger.h:135