Antares Simulator
Power System Simulator
Loading...
Searching...
No Matches
correlation.hxx
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#ifndef __ANTARES_LIBS_ARRAY_CORRELATION_HXX__
22#define __ANTARES_LIBS_ARRAY_CORRELATION_HXX__
23#include "antares/study/area/area.h"
24
25namespace Antares
26{
27namespace Data
28{
29inline void InterAreaCorrelationResetMatrix(Matrix<>* m, AreaList* l)
30{
31 assert(NULL != m);
32 assert(NULL != l);
33 m->resize(l->size(), l->size());
34 m->fillUnit();
35}
36
37inline void Correlation::mode(Correlation::Mode mode)
38{
39 pMode = mode;
40}
41
42inline Correlation::Mode Correlation::mode() const
43{
44 return pMode;
45}
46
47template<class StringT>
48inline void Correlation::set(Matrix<>& m, const Area& from, const Area& to, const StringT& value)
49{
50 double d;
51 if (!value.template to<double>(d))
52 {
53 Antares::logs.error() << correlationName << ": Invalid decimal value for '" << from.name
54 << "' / '" << to.name << "' (got '" << value << "')";
55 return;
56 }
57
58 set(m, from, to, d);
59}
60
61} // namespace Data
62} // namespace Antares
63
64#endif // __ANTARES_LIBS_ARRAY_CORRELATION_HXX__
Definition for a single area.
Definition area.h:52
AreaName name
Name of the area.
Definition area.h:213
Yuni::CString< 30, false > correlationName
The name to displays in logs.
Definition correlation.h:143
Mode mode() const
Get the current mode.
Definition correlation.hxx:42
A n-by-n matrix.
Definition jit.h:30
void fillUnit()
Make the matrix an unit matrix (identity matrix)
Definition matrix.hxx:362
void resize(uint w, uint h, bool fixedSize=false)
Resize the matrix.
Definition matrix.hxx:555