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