28 #include <yuni/yuni.h>
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"
43 namespace Antares::Data
46 struct CompareBindingConstraintName;
90 using linkWeightMap = std::map<const AreaLink*, double, CompareLinkName>;
147 const ConstraintName&
name()
const;
152 void name(
const AnyString& newname);
157 void pId(
const AnyString&
name);
162 const ConstraintName&
id()
const;
177 std::string
group()
const;
178 void group(std::string group_name);
183 void comments(
const AnyString& newcomments);
186 void resetToDefaultValues();
197 bool skipped()
const;
198 bool isActive()
const;
201 const Matrix<>& RHSTimeSeries()
const;
204 bool hasAllWeightedLinksOnLayer(
size_t layerID);
206 bool hasAllWeightedClustersOnLayer(
size_t layerID);
247 const std::function<
void(AreaName&,
const AreaName&)>& translate);
279 const std::function<
void(AreaName&,
const AreaName&)>& translate);
307 Operator operatorType()
const;
308 void operatorType(Operator o);
311 uint yearByYearFilter()
const;
312 uint synthesisFilter()
const;
374 std::string timeSeriesFileName(
const Env& env)
const;
380 ConstraintName pName;
400 uint pFilterYearByYear = filterNone;
403 uint pFilterSynthesis = filterNone;
405 bool pEnabled =
false;
409 std::string group_ =
"default";
421 bool operator()(
const std::shared_ptr<BindingConstraint>& s1,
422 const std::shared_ptr<BindingConstraint>& s2)
const
424 return s1->name() < s2->name();
431 inline const std::initializer_list<std::string>& getNames<Antares::Data::BindingConstraint::Type>()
433 static const std::initializer_list<std::string> il = {
"unknown",
"hourly",
"daily",
"weekly"};
438 inline const std::initializer_list<std::string>&
439 getNames<Antares::Data::BindingConstraint::Operator>()
441 static const std::initializer_list<std::string> il = {
"unknown",
452 #include "BindingConstraint.hxx"
Definition of a link between two areas (Interconnection)
Definition: links.h:58
Definition for a single area.
Definition: area.h:51
Definition: BindingConstraintLoader.h:41
Definition: BindingConstraintSaver.h:34
Definition: BindingConstraint.h:49
const YString & comments() const
Get the comments.
Definition: BindingConstraint.hxx:36
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:660
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:301
void setTimeGranularity(Type t)
Set the type of the binding constraint.
Definition: BindingConstraint.hxx:73
double weight(const AreaLink *lnk) const
Get the weight of a given interconnection.
Definition: BindingConstraint.cpp:555
~BindingConstraint()=default
Destructor.
std::map< const ThermalCluster *, int > clusterOffsetMap
Map of offset (for links)
Definition: BindingConstraint.h:103
uint clusterCount() const
Get how many thermal clusters the binding constraint contains.
Definition: BindingConstraint.hxx:51
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:567
void reverseWeightSign(const AreaLink *lnk)
Reverse the sign of the weight for a given interconnection or thermal cluster.
Definition: BindingConstraint.cpp:376
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:720
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:241
bool enabled() const
Get if the binding constraint is enabled.
Definition: BindingConstraint.hxx:58
bool contains(const BindingConstraint *bc) const
Get if the given binding constraint is identical.
Definition: BindingConstraint.cpp:468
const ConstraintName & id() const
Get the ID of the binding constraint.
Definition: BindingConstraint.hxx:31
void removeAllWeights()
Remove all weights.
Definition: BindingConstraint.cpp:189
std::map< const AreaLink *, int > linkOffsetMap
Map of offset (for links)
Definition: BindingConstraint.h:100
std::set< std::shared_ptr< BindingConstraint >, CompareBindingConstraintName > Set
Ordered Set of binding constraints.
Definition: BindingConstraint.h:88
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:92
void buildFormula(YString &s) const
Build a human readable formula for the binding constraint.
Definition: BindingConstraint.cpp:407
Type type() const
Get the type of the binding constraint.
Definition: BindingConstraint.hxx:68
linkWeightMap::const_iterator const_iterator
Const iterator.
Definition: BindingConstraint.h:94
std::map< const ThermalCluster *, double, CompareClusterName > clusterWeightMap
Map of weight (for thermal clusters)
Definition: BindingConstraint.h:97
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:26
std::map< const AreaLink *, double, CompareLinkName > linkWeightMap
Map of weight (for links)
Definition: BindingConstraint.h:90
uint linkCount() const
Get how many links the binding constraint contains.
Definition: BindingConstraint.hxx:46
void pId(const AnyString &name)
Set the pId of the binding constraint.
Definition: BindingConstraint.cpp:145
void clearAndReset(const AnyString &name, Type newType, Operator op)
Clear all values and reset the binding constraint to its new type.
Definition: BindingConstraint.cpp:665
bool forceReload(bool reload=false) const
Invalidate all matrices.
Definition: BindingConstraint.cpp:655
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:76
A n-by-n matrix.
Definition: matrix.h:44
Definition: BindingConstraintStructures.h:34
Definition: BindingConstraint.h:420