Antares Xpansion
Investment simulations for Antares studies
Loading...
Searching...
No Matches
LinkProfile.h
1#ifndef ANTARESXPANSION_LINKPROFILE_H
2#define ANTARESXPANSION_LINKPROFILE_H
3
4constexpr int NUMBER_OF_HOUR_PER_YEAR = 8760;
5#include <array>
6#include <exception>
7
8#include "antares-xpansion/lpnamer/helper/ProblemGenerationLogger.h"
9#include "antares-xpansion/xpansion_interfaces/LogUtils.h"
10#include "antares-xpansion/xpansion_interfaces/StringManip.h"
11
19{
20public:
25 explicit LinkProfile(std::shared_ptr<ProblemGenerationLog::ProblemGenerationLogger> logger):
26 logger_(logger)
27 {
28 }
29
36 double getDirectProfile(size_t hour) const;
37
44 double getIndirectProfile(size_t hour) const;
45
47 // ADR
48 std::vector<double> direct_link_profile = std::vector<double>(NUMBER_OF_HOUR_PER_YEAR, 1);
50 std::vector<double> indirect_link_profile = std::vector<double>(NUMBER_OF_HOUR_PER_YEAR, 1);
51
52 bool operator==(const LinkProfile& rhs) const
53 {
56 }
57
58 class InvalidHourForProfile: public LogUtils::XpansionError<std::invalid_argument>
59 {
60 using LogUtils::XpansionError<std::invalid_argument>::XpansionError;
61 };
62
63private:
64 std::shared_ptr<ProblemGenerationLog::ProblemGenerationLogger> logger_;
65};
66
67#endif // ANTARESXPANSION_LINKPROFILE_H
Definition LinkProfile.h:59
LinkProfile structure.
Definition LinkProfile.h:19
double getIndirectProfile(size_t hour) const
returns the value of a direct link profile
Definition LinkProfile.cpp:20
LinkProfile(std::shared_ptr< ProblemGenerationLog::ProblemGenerationLogger > logger)
LinkProfile default constructor.
Definition LinkProfile.h:25
std::vector< double > direct_link_profile
direct linkprofile values
Definition LinkProfile.h:48
double getDirectProfile(size_t hour) const
returns the value of a direct link profile
Definition LinkProfile.cpp:7
std::vector< double > indirect_link_profile
indirect linkprofile values if different from direct linkprofile
Definition LinkProfile.h:50