Antares Simulator
Power System Simulator
Loading...
Searching...
No Matches
ThermalTSNumberData.h
1/*
2** Copyright 2007-2024, 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 04/07/23.
23//
24
25#pragma once
26
27#include "TSnumberData.h"
28
29namespace Antares::Data::ScenarioBuilder
30{
32{
33public:
34 thermalTSNumberData() = default;
35 virtual ~thermalTSNumberData() = default;
36
37 bool reset(const Study& study) override;
38 void saveToINIFile(const Study& study, Yuni::IO::File::Stream& file) const override;
39
40 void attachArea(const Area* area)
41 {
42 pArea = area;
43 }
44
45 void setTSnumber(const Antares::Data::ThermalCluster* cluster, const uint year, uint value);
46 uint get(const Antares::Data::ThermalCluster* cluster, const uint year) const;
47 bool apply(Study& study) override;
48 CString<512, false> get_prefix() const override;
49 uint get_tsGenCount(const Study& study) const override;
50
51private:
53 const Area* pArea = nullptr;
54};
55
56inline uint thermalTSNumberData::get(const Antares::Data::ThermalCluster* cluster,
57 const uint year) const
58{
59 assert(cluster != nullptr);
60 if (year < pTSNumberRules.height && cluster->areaWideIndex < pTSNumberRules.width)
61 {
62 const uint index = cluster->areaWideIndex;
63 return pTSNumberRules[index][year];
64 }
65 return 0;
66}
67
68inline CString<512, false> thermalTSNumberData::get_prefix() const
69{
70 return "t,";
71}
72} // namespace Antares::Data::ScenarioBuilder
Definition for a single area.
Definition area.h:52
unsigned int areaWideIndex
The index of the cluster from the area's point of view.
Definition cluster.h:120
Rules for TS numbers, for all years and a single timeseries.
Definition TSnumberData.h:32
MatrixType pTSNumberRules
All TS number overlay (0 if auto)
Definition TSnumberData.h:75
Definition ThermalTSNumberData.h:32
void saveToINIFile(const Study &study, Yuni::IO::File::Stream &file) const override
Export the data into a mere INI file.
Definition ThermalTSNumberData.cpp:48
bool reset(const Study &study) override
Reset data from the study.
Definition ThermalTSNumberData.cpp:31
bool apply(Study &study) override
Apply the changes to the study corresponding data (time series, hydro levels, ...)
Definition ThermalTSNumberData.cpp:87
Definition study.h:61
A single thermal cluster.
Definition cluster.h:78
uint width
Width of the matrix.
Definition matrix.h:441