Antares Xpansion
Investment simulations for Antares studies
Loading...
Searching...
No Matches
Candidate.h
1#ifndef ANTARESXPANSION_CANDIDATE_H
2#define ANTARESXPANSION_CANDIDATE_H
3
4#include "antares-xpansion/lpnamer/helper/ProblemGenerationLogger.h"
5#include "antares-xpansion/lpnamer/model/LinkProfile.h"
6#include "antares-xpansion/xpansion_interfaces/StringManip.h"
7
9{
10 bool enable = true;
11
12 std::string link_name;
13 int link_id;
14 std::string linkor;
15 std::string linkex;
16 std::string installed_direct_link_profile_name;
17 std::string installed_indirect_link_profile_name;
18 double already_installed_capacity = 1.0;
19
20 std::string name;
21 double annual_cost_per_mw = 0.0;
22 double max_investment = 0.0;
23 double unit_size = 0.0;
24 double max_units = 0.0;
25 std::string direct_link_profile;
26 std::string indirect_link_profile;
27};
28
35{
36public:
37 Candidate() = default;
38 Candidate(const CandidateData& data, std::vector<LinkProfile> profile);
39
40 double directCapacityFactor(size_t timeStep) const;
41 double indirectCapacityFactor(size_t timeStep) const;
42
43 double directCapacityFactor(size_t chronicle_number, size_t timeStep) const;
44 double indirectCapacityFactor(size_t chronicle_number, size_t timeStep) const;
45
46 double obj() const;
47 double lb() const;
48 double ub() const;
49
50 double unit_size() const;
51 double max_unit() const;
52
53 bool is_integer() const;
54
55 std::string get_name() const;
56 void set_name(const std::string& name);
57
58 bool hasNullProfile(unsigned int chronicle, const std::set<int>& time_steps) const;
59
60 [[nodiscard]] unsigned long number_of_chronicles() const;
61
62private:
63 std::vector<LinkProfile> _profile;
64 std::string _name;
65 double _annual_cost_per_mw;
66 double _max_investment;
67 double _unit_size;
68 double _max_units;
69};
70
71#endif // ANTARESXPANSION_CANDIDATE_H
Candidate class.
Definition Candidate.h:35
Definition Candidate.h:9