Antares Simulator
Power System Simulator
BindingConstraintsTSNumbersData.h
1 /*
2 ** Copyright 2007-2025, RTE (https://www.rte-france.com)
3 ** See AUTHORS.txt
4 ** SPDX-License-Identifier: MPL-2.0
5 ** This file is part of Antares-Simulator,
6 ** Adequacy and Performance assessment for interconnected energy networks.
7 **
8 ** Antares_Simulator is free software: you can redistribute it and/or modify
9 ** it under the terms of the Mozilla Public Licence 2.0 as published by
10 ** the Mozilla Foundation, either version 2 of the License, or
11 ** (at your option) any later version.
12 **
13 ** Antares_Simulator is distributed in the hope that it will be useful,
14 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 ** Mozilla Public Licence 2.0 for more details.
17 **
18 ** You should have received a copy of the Mozilla Public Licence 2.0
19 ** along with Antares_Simulator. If not, see <https://opensource.org/license/mpl-2-0/>.
20 */
21 //
22 // Created by marechaljas on 03/07/23.
23 //
24 
25 #pragma once
26 
27 #include "TSnumberData.h"
28 
29 namespace Antares::Data::ScenarioBuilder
30 {
32 {
33 public:
35  virtual ~BindingConstraintsTSNumberData() = default;
36 
37  bool reset(const Study& study) override;
38 
39 #ifdef BUILD_UI
40  void saveToINIFile(const Study& study, Yuni::IO::File::Stream& file) const override;
41 #endif
42 
43  void setTSnumber(const std::string& group_name, unsigned year, unsigned value);
44  unsigned get(const std::string& group_name, unsigned year) const;
45  bool apply(Study& study) override;
46  CString<512, false> get_prefix() const override;
47  unsigned get_tsGenCount(const Study& study) const override;
48 
49 private:
50  std::map<std::string, MatrixType> rules_;
51 };
52 
53 inline unsigned BindingConstraintsTSNumberData::get(const std::string& group_name,
54  const unsigned year) const
55 {
56  auto it = rules_.find(group_name);
57  if (it == rules_.end())
58  {
59  return 0;
60  }
61  return it->second[0][year];
62 }
63 
64 inline CString<512, false> BindingConstraintsTSNumberData::get_prefix() const
65 {
66  return "bc,";
67 }
68 
69 inline unsigned BindingConstraintsTSNumberData::get_tsGenCount(const Study&) const
70 {
71  return 0;
72 }
73 } // namespace Antares::Data::ScenarioBuilder
Definition: BindingConstraintsTSNumbersData.h:32
bool reset(const Study &study) override
Reset data from the study.
Definition: BindingConstraintsTSNumbersData.cpp:80
bool apply(Study &study) override
Apply the changes to the study corresponding data (time series, hydro levels, ...)
Definition: BindingConstraintsTSNumbersData.cpp:60
Rules for TS numbers, for all years and a single timeseries.
Definition: TSnumberData.h:32
Definition: study.h:57