1#ifndef HYDROBRICKS_WATER_CONTAINER_H
2#define HYDROBRICKS_WATER_CONTAINER_H
79 return m_capacity !=
nullptr;
98 if (m_infiniteStorage) {
99 throw ConceptionIssue(_(
"Trying to set the maximum capacity of an infinite storage."));
108 m_infiniteStorage =
true;
117 if (m_infiniteStorage) {
121 return m_content + m_contentChangeDynamic + m_contentChangeStatic;
130 if (m_infiniteStorage) {
134 return m_content + m_contentChangeDynamic;
143 if (m_infiniteStorage) {
165 m_initialState = value;
174 if (m_infiniteStorage) {
175 throw ConceptionIssue(_(
"Trying to set the content of an infinite storage."));
195 return content > EPSILON_F && content > PRECISION;
204 return m_overflow !=
nullptr;
213 m_overflow = overflow;
223 m_inputs.push_back(flux);
249 double m_contentChangeDynamic;
250 double m_contentChangeStatic;
251 double m_initialState;
253 bool m_infiniteStorage;
256 vector<Flux*> m_inputs;
Definition Includes.h:133
Definition WaterContainer.h:9
bool IsNotEmpty()
Definition WaterContainer.h:193
void SetAsInfiniteStorage()
Definition WaterContainer.h:107
vecDoublePt GetDynamicContentChanges()
Definition WaterContainer.cpp:203
virtual bool IsOk()
Definition WaterContainer.cpp:16
bool HasOverflow()
Definition WaterContainer.h:203
Brick * GetParentBrick()
Definition WaterContainer.h:243
void UpdateContent(double value)
Definition WaterContainer.h:173
void Reset()
Definition WaterContainer.cpp:180
void AddAmountToStaticContentChange(double change)
Definition WaterContainer.cpp:41
double GetContentWithoutChanges() const
Definition WaterContainer.h:142
double GetTargetFillingRatio()
Definition WaterContainer.cpp:207
void SubtractAmountFromDynamicContentChange(double change)
Definition WaterContainer.cpp:31
void SetOutgoingRatesToZero()
Definition WaterContainer.cpp:155
double * GetContentPointer()
Definition WaterContainer.h:155
void AddAmountToDynamicContentChange(double change)
Definition WaterContainer.cpp:36
bool HasMaximumCapacity() const
Definition WaterContainer.h:78
void LinkOverflow(Process *overflow)
Definition WaterContainer.h:212
void Finalize()
Definition WaterContainer.cpp:172
virtual void ApplyConstraints(double timeSte)
Definition WaterContainer.cpp:46
void AttachFluxIn(Flux *flux)
Definition WaterContainer.h:221
double GetContentWithChanges() const
Definition WaterContainer.h:116
virtual double SumIncomingFluxes()
Definition WaterContainer.cpp:190
double GetContentWithDynamicChanges() const
Definition WaterContainer.h:129
void SaveAsInitialState()
Definition WaterContainer.cpp:186
double GetMaximumCapacity()
Definition WaterContainer.h:87
void SetInitialState(double value)
Definition WaterContainer.h:164
void SetMaximumCapacity(float *value)
Definition WaterContainer.h:97
virtual bool ContentAccessible() const
Definition WaterContainer.cpp:199