Antares Xpansion
Investment simulations for Antares studies
Loading...
Searching...
No Matches
CriterionInputDataReader.h
1#pragma once
2#include <filesystem>
3#include <regex>
4#include <string>
5#include <vector>
6
7#include "antares-xpansion/xpansion_interfaces/LoggerUtils.h"
8#include "yaml-cpp/yaml.h"
9
10namespace Benders::Criterion {
11static constexpr const char *const PositiveUnsuppliedEnergy =
12 "PositiveUnsuppliedEnergy::";
13
15 : public LogUtils::XpansionError<std::runtime_error> {
16 using LogUtils::XpansionError<std::runtime_error>::XpansionError;
17};
19 : public LogUtils::XpansionError<std::runtime_error> {
20 using LogUtils::XpansionError<std::runtime_error>::XpansionError;
21};
22
24 : public LogUtils::XpansionError<std::runtime_error> {
25 using LogUtils::XpansionError<std::runtime_error>::XpansionError;
26};
27
29 : public LogUtils::XpansionError<std::runtime_error> {
30 using LogUtils::XpansionError<std::runtime_error>::XpansionError;
31};
32
34 : public LogUtils::XpansionError<std::runtime_error> {
35 using LogUtils::XpansionError<std::runtime_error>::XpansionError;
36};
37
39 : public LogUtils::XpansionError<std::runtime_error> {
40 using LogUtils::XpansionError<std::runtime_error>::XpansionError;
41};
42
45 public:
46 explicit CriterionPattern(std::string prefix, std::string body);
47 CriterionPattern() = default;
48 [[nodiscard]] std::string Value() const;
49 [[nodiscard]] const std::string &GetPrefix() const;
50 void SetPrefix(const std::string &prefix);
51 [[nodiscard]] const std::string &GetBody() const;
52 void SetBody(const std::string &body);
53
54 private:
55 std::string prefix_;
56 std::string body_;
57};
58
61 public:
62 CriterionSingleInputData() = default;
67 CriterionSingleInputData(const std::string &prefix, const std::string &body,
68 double criterion);
69
70 [[nodiscard]] CriterionPattern Pattern() const;
71 [[nodiscard]] double Criterion() const;
72 void SetCriterion(double criterion);
73 void ResetPattern(const std::string &prefix, const std::string &body);
74 private:
75 CriterionPattern pattern_;
76 double criterion_ = 0;
77};
78
81 public:
82 CriterionInputData() = default;
83
84 [[nodiscard]] const std::vector<CriterionSingleInputData> &Criteria()
85 const;
86
87 [[nodiscard]] std::vector<std::string> PatternBodies() const;
88 [[nodiscard]] std::string PatternsPrefix() const;
89
90 void SetCriterionCountThreshold(double count_threshold);
91 [[nodiscard]] double CriterionCountThreshold() const;
92 void AddSingleData(const CriterionSingleInputData &data);
93
94 private:
95 std::vector<CriterionSingleInputData> criterion_vector_;
96 double count_threshold_ = 1;
97};
98
101 public:
102 OuterLoopCriterionInputData() = default;
103 [[nodiscard]] double StoppingThreshold() const;
104 void setStoppingThreshold(double stoppingThreshold);
105
106 private:
107 double stopping_threshold_ = 1e-4;
108};
109
112 public:
113 virtual OuterLoopCriterionInputData Read(
114 const std::filesystem::path &input_file) = 0;
115 virtual ~ICriterionInputDataReader() = default;
116};
117
119 public:
120 CriterionInputFromYaml() = default;
122 const std::filesystem::path &input_file) override;
123
124 private:
125 CriterionInputData criterion_input_data_;
126};
127
128} // namespace Benders::Criterion
Definition CriterionInputDataReader.h:34
Definition CriterionInputDataReader.h:39
this class contains all data read from user input file
Definition CriterionInputDataReader.h:80
Definition CriterionInputDataReader.h:15
Definition CriterionInputDataReader.h:19
Definition CriterionInputDataReader.h:24
Definition CriterionInputDataReader.h:118
Definition CriterionInputDataReader.h:29
lovely class
Definition CriterionInputDataReader.h:44
holds the pattern and the criterion
Definition CriterionInputDataReader.h:60
Abstract.
Definition CriterionInputDataReader.h:111
this class contains all data read from user input file
Definition CriterionInputDataReader.h:100