Antares Simulator
Power System Simulator
properties.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 #pragma once
22 
23 #include <optional>
24 #include <string>
25 
26 #include <antares/inifile/inifile.h>
27 
28 namespace Antares::Data::ShortTermStorage
29 {
30 class Properties final
31 {
32 public:
33  bool validate();
34  bool loadKey(const IniFile::Property* p);
35  void save(IniFile& ini) const;
36 
38  std::optional<double> injectionNominalCapacity;
40  std::optional<double> withdrawalNominalCapacity;
42  std::optional<double> reservoirCapacity;
43 
45  double initialLevel = initiallevelDefault;
47  bool initialLevelOptim = false;
48 
50  double injectionEfficiency = 1;
53 
55  std::string groupName = "OTHER1";
57  std::string name;
58 
59  bool penalizeVariationWithdrawal = false;
60  bool penalizeVariationInjection = false;
61 
63  bool enabled = true;
64 
65  bool allowOverflow = false;
66 
67 private:
68  static constexpr double initiallevelDefault = .5;
69 };
70 } // namespace Antares::Data::ShortTermStorage
std::optional< double > withdrawalNominalCapacity
Not optional Withdrawal nominal capacity, >= 0.
Definition: properties.h:40
double injectionEfficiency
Efficiency factor for injection between 0 and 1.
Definition: properties.h:50
std::string groupName
Used to sort outputs.
Definition: properties.h:55
double withdrawalEfficiency
Efficiency factor for withdrawal between 0 and 1.
Definition: properties.h:52
std::optional< double > reservoirCapacity
Not optional Reservoir capacity in MWh, >= 0.
Definition: properties.h:42
double initialLevel
Initial level, <= 1.
Definition: properties.h:45
std::string name
cluster name
Definition: properties.h:57
bool initialLevelOptim
Bool to optimise or not initial level.
Definition: properties.h:47
std::optional< double > injectionNominalCapacity
Not optional Injection nominal capacity, >= 0.
Definition: properties.h:38
bool enabled
Enabled ?
Definition: properties.h:63
A single entry in an INI file.
Definition: inifile.h:43
Data for an INI file.
Definition: inifile.h:34