Antares Xpansion
Investment simulations for Antares studies
Loading...
Searching...
No Matches
ProblemGenerationOptions.h
1//
2// Created by marechaljas on 27/10/23.
3//
4
5#pragma once
6
7#include <antares-xpansion/xpansion_interfaces/LogUtils.h>
8#include <filesystem>
9#include <vector>
10
12{
13public:
14 virtual ~ProblemGenerationOptions() = default;
15 [[nodiscard]] virtual std::filesystem::path XpansionOutputDir() const = 0;
16 [[nodiscard]] virtual std::string MasterFormulation() const = 0;
17 [[nodiscard]] virtual std::string AdditionalConstraintsFilename() const = 0;
18 [[nodiscard]] virtual std::filesystem::path ArchivePath() const = 0;
19 [[nodiscard]] virtual std::filesystem::path WeightsFile() const = 0;
20 [[nodiscard]] virtual std::vector<int> ActiveYears() const = 0;
21 [[nodiscard]] virtual bool UnnamedProblems() const = 0;
22 [[nodiscard]] virtual std::filesystem::path deduceXpansionDirIfEmpty(
23 std::filesystem::path xpansion_output_dir,
24 const std::filesystem::path& archive_path) const
25 = 0;
26 [[nodiscard]] virtual std::filesystem::path StudyPath() const = 0;
27
28 class ConflictingParameters: public LogUtils::XpansionError<std::runtime_error>
29 {
30 using LogUtils::XpansionError<std::runtime_error>::XpansionError;
31
32 public:
33 explicit ConflictingParameters(const std::string& err_message,
34 const std::string& log_location):
35 XpansionError(err_message, log_location)
36 {
37 }
38 };
39
40 class MismatchedParameters: public LogUtils::XpansionError<std::runtime_error>
41 {
42 using LogUtils::XpansionError<std::runtime_error>::XpansionError;
43
44 public:
45 explicit MismatchedParameters(const std::string& err_message,
46 const std::string& log_location):
47 XpansionError(err_message, log_location)
48 {
49 }
50 };
51
52 class MissingParameters: public LogUtils::XpansionError<std::runtime_error>
53 {
54 using LogUtils::XpansionError<std::runtime_error>::XpansionError;
55
56 public:
57 explicit MissingParameters(const std::string& err_message, const std::string& log_location):
58 XpansionError(err_message, log_location)
59 {
60 }
61 };
62};
Definition ProblemGenerationOptions.h:29
Definition ProblemGenerationOptions.h:41
Definition ProblemGenerationOptions.h:53
Definition ProblemGenerationOptions.h:12