29#include <yuni/core/noncopyable.h>
30#include <yuni/core/string.h>
32#include <antares/array/matrix.h>
33#include <antares/inifile/inifile.h>
34#include "antares/antares/antares.h"
35#include "antares/study/filter.h"
37#include "../area/links.h"
39#include "../parts/thermal/cluster.h"
40#include "BindingConstraintStructures.h"
41#include "EnvForLoading.h"
43namespace Antares::Data
46struct CompareBindingConstraintName;
88 using linkWeightMap = std::map<const AreaLink*, double, CompareLinkName>;
145 const ConstraintName&
name()
const;
150 void name(
const AnyString& newname);
155 void pId(
const AnyString&
name);
160 const ConstraintName&
id()
const;
175 std::string
group()
const;
176 void group(std::string group_name);
181 void comments(
const AnyString& newcomments);
184 void resetToDefaultValues();
195 bool skipped()
const;
196 bool isActive()
const;
199 const Matrix<>& RHSTimeSeries()
const;
202 bool hasAllWeightedLinksOnLayer(
size_t layerID);
204 bool hasAllWeightedClustersOnLayer(
size_t layerID);
245 const std::function<
void(AreaName&,
const AreaName&)>& translate);
277 const std::function<
void(AreaName&,
const AreaName&)>& translate);
305 Operator operatorType()
const;
306 void operatorType(Operator o);
309 uint yearByYearFilter()
const;
310 uint synthesisFilter()
const;
372 std::string timeSeriesFileName(
const Env& env)
const;
376 ConstraintName pName;
396 uint pFilterYearByYear = filterNone;
399 uint pFilterSynthesis = filterNone;
401 bool pEnabled =
false;
405 std::string group_ =
"default";
417 bool operator()(
const std::shared_ptr<BindingConstraint>& s1,
418 const std::shared_ptr<BindingConstraint>& s2)
const
420 return s1->name() < s2->name();
426#include "BindingConstraint.hxx"
Definition of a link between two areas (Interconnection)
Definition links.h:50
Definition for a single area.
Definition area.h:52
Definition BindingConstraintLoader.h:41
Definition BindingConstraintSaver.h:34
Definition BindingConstraint.h:49
const YString & comments() const
Get the comments.
Definition BindingConstraint.hxx:35
Column
Definition BindingConstraint.h:79
@ columnMax
The maximum number of columns which can be found in the value matrix.
Definition BindingConstraint.h:84
void markAsModified() const
Mark the constraint as modified.
Definition BindingConstraint.cpp:694
void copyOffsets(const Study &study, const BindingConstraint &rhs, bool emptyBefore, const std::function< void(AreaName &, const AreaName &)> &translate)
Copy all offsets from another constraint.
Definition BindingConstraint.cpp:321
void setTimeGranularity(Type t)
Set the type of the binding constraint.
Definition BindingConstraint.hxx:72
double weight(const AreaLink *lnk) const
Get the weight of a given interconnection.
Definition BindingConstraint.cpp:594
std::map< const ThermalCluster *, int > clusterOffsetMap
Map of offset (for links)
Definition BindingConstraint.h:101
uint clusterCount() const
Get how many thermal clusters the binding constraint contains.
Definition BindingConstraint.hxx:50
static Type StringToType(const AnyString &text)
Convert a string into its corresponding type.
Definition BindingConstraint.cpp:70
int offset(const AreaLink *lnk) const
Get the offset of a given interconnection.
Definition BindingConstraint.cpp:606
~BindingConstraint()
Destructor.
Definition BindingConstraint.cpp:140
void reverseWeightSign(const AreaLink *lnk)
Reverse the sign of the weight for a given interconnection or thermal cluster.
Definition BindingConstraint.cpp:408
static const char * MathOperatorToCString(Operator o)
Convert a binding constraint operator into a short C-String (symbol)
Definition BindingConstraint.cpp:133
static Operator StringToOperator(const AnyString &text)
Converter a raw string into an operator.
Definition BindingConstraint.cpp:46
std::string group() const
Get the group.
Definition BindingConstraint.cpp:754
void copyWeights(const Study &study, const BindingConstraint &rhs, bool emptyBefore, const std::function< void(AreaName &, const AreaName &)> &translate)
Copy all weights from another constraint.
Definition BindingConstraint.cpp:249
bool enabled() const
Get if the binding constraint is enabled.
Definition BindingConstraint.hxx:57
bool contains(const BindingConstraint *bc) const
Get if the given binding constraint is identical.
Definition BindingConstraint.cpp:507
const ConstraintName & id() const
Get the ID of the binding constraint.
Definition BindingConstraint.hxx:30
void removeAllWeights()
Remove all weights.
Definition BindingConstraint.cpp:197
std::map< const AreaLink *, int > linkOffsetMap
Map of offset (for links)
Definition BindingConstraint.h:98
static const char * OperatorToCString(Operator o)
Convert a binding constraint operator into a mere C-String.
Definition BindingConstraint.cpp:114
linkWeightMap::iterator iterator
Iterator.
Definition BindingConstraint.h:90
void buildFormula(YString &s) const
Build a human readable formula for the binding constraint.
Definition BindingConstraint.cpp:441
Type type() const
Get the type of the binding constraint.
Definition BindingConstraint.hxx:67
linkWeightMap::const_iterator const_iterator
Const iterator.
Definition BindingConstraint.h:92
std::map< const ThermalCluster *, double, CompareClusterName > clusterWeightMap
Map of weight (for thermal clusters)
Definition BindingConstraint.h:95
Type
Definition BindingConstraint.h:55
@ typeMax
The maximum number of types.
Definition BindingConstraint.h:65
@ typeHourly
The binding constraint has hourly values.
Definition BindingConstraint.h:59
@ typeDaily
The binding constraint has daily values.
Definition BindingConstraint.h:61
@ typeUnknown
Unknown status.
Definition BindingConstraint.h:57
@ typeWeekly
The binding constraint has weekly values.
Definition BindingConstraint.h:63
const ConstraintName & name() const
Get the name of the binding constraint.
Definition BindingConstraint.hxx:25
std::map< const AreaLink *, double, CompareLinkName > linkWeightMap
Map of weight (for links)
Definition BindingConstraint.h:88
uint linkCount() const
Get how many links the binding constraint contains.
Definition BindingConstraint.hxx:45
void pId(const AnyString &name)
Set the pId of the binding constraint.
Definition BindingConstraint.cpp:153
void clearAndReset(const AnyString &name, Type newType, Operator op)
Clear all values and reset the binding constraint to its new type.
Definition BindingConstraint.cpp:699
bool forceReload(bool reload=false) const
Invalidate all matrices.
Definition BindingConstraint.cpp:689
static const char * OperatorToShortCString(Operator o)
Convert a binding constraint operator into a short C-String.
Definition BindingConstraint.cpp:121
static const char * TypeToCString(Type t)
Convert a binding constraint type into a mere C-String.
Definition BindingConstraint.cpp:107
A single thermal cluster.
Definition cluster.h:78
A n-by-n matrix.
Definition jit.h:30
Definition BindingConstraintStructures.h:36
Definition BindingConstraint.h:416