Antares Xpansion
Investment simulations for Antares studies
Loading...
Searching...
No Matches
SolverFactory.h
1#pragma once
2
3#include <set>
4
5#include "SolverConfig.h"
6#include "antares-xpansion/multisolver_interface/SolverAbstract.h"
7#include "antares-xpansion/xpansion_interfaces/ILogger.h"
8
13enum class SOLVER_TYPE { INTEGER, CONTINUOUS };
14
20 public:
21 static std::vector<std::string> GetAvailableSolvers(
22 std::shared_ptr<ILoggerXpansion> logger);
23
28 static std::vector<std::string> GetSupportedSolvers();
29};
30
37 private:
38 std::vector<std::string> _available_solvers;
39
40 public:
44 explicit SolverFactory(std::shared_ptr<ILoggerXpansion> logger =
45 std::make_shared<EmptyLogger>());
46
47 public:
56 SolverAbstract::Ptr create_solver(const std::string& solver_name) const;
57 SolverAbstract::Ptr create_solver(const std::string& solver_name,
58 SolverLogManager &log_manager) const;
59 SolverAbstract::Ptr create_solver(const std::string &solver_name,
60 const SOLVER_TYPE solver_type) const;
61 SolverAbstract::Ptr create_solver(const std::string &solver_name,
62 const SOLVER_TYPE solver_type,
63 SolverLogManager &log_manager) const;
64
73 SolverAbstract::Ptr create_solver(const SolverConfig& solver_config) const;
75 const SOLVER_TYPE solver_type) const;
77 SolverLogManager &log_manager) const;
79 const SOLVER_TYPE solver_type,
80 SolverLogManager &log_manager) const;
81
90 const std::shared_ptr<const SolverAbstract> &to_copy) const;
91
95 const std::vector<std::string> &get_solvers_list() const;
96
97 bool isXpress_available_ = false;
98
99 std::shared_ptr<ILoggerXpansion> logger_;
100};
std::shared_ptr< SolverAbstract > Ptr
Definition SolverAbstract.h:181
Class to store the configuration of a solver Invariant: name is lowercase.
Definition SolverConfig.h:11
Definition SolverFactory.h:36
SolverAbstract::Ptr create_solver(const std::string &solver_name) const
Creates and returns to an object solver from the wanted implementation.
Definition SolverFactory.cpp:90
SolverAbstract::Ptr copy_solver(SolverAbstract::Ptr to_copy) const
Copy constructor : Creates and returns to an object solver from the wanted implementation by copying ...
Definition SolverFactory.cpp:211
const std::vector< std::string > & get_solvers_list() const
Returns a reference to the list of available solvers.
Definition SolverFactory.cpp:216
SolverFactory(std::shared_ptr< ILoggerXpansion > logger=std::make_shared< EmptyLogger >())
Constructor of SolverFactory, fills the list of available solvers.
Definition SolverFactory.cpp:63
Definition SolverFactory.h:19
static std::vector< std::string > GetSupportedSolvers()
Returns a list of supported solvers Supported doesn't mean available, for exemple if licence are not ...
Definition SolverFactory.cpp:51
Definition SolverAbstract.h:16