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