hydrobricks
Loading...
Searching...
No Matches
Glacier.h
1#ifndef HYDROBRICKS_GLACIER_H
2#define HYDROBRICKS_GLACIER_H
3
4#include <memory>
5
6#include "IceContainer.h"
7#include "Includes.h"
8#include "LandCover.h"
9#include "Snowpack.h"
10
11class Glacier : public LandCover {
12 public:
13 Glacier();
14
18 void Reset() override;
19
23 void SaveAsInitialState() override;
24
28 void SetParameters(const BrickSettings& brickSettings) override;
29
33 void AttachFluxIn(Flux* flux) override;
34
38 [[nodiscard]] bool IsValid(bool checkProcesses = true) const override;
39
46
50 void Finalize() override;
51
55 void SetInitialState(double value, ContentType type) override;
56
60 double GetContent(ContentType type) const override;
61
65 void UpdateContent(double value, ContentType type) override;
66
70 void UpdateContentFromInputs() override;
71
75 void ApplyConstraints(double timeStep) override;
76
80 vecDoublePt GetDynamicContentChanges() override;
81
85 double* GetValuePointer(const string& name) override;
86
90 void SurfaceComponentAdded(SurfaceComponent* brick) override;
91
97 [[nodiscard]] bool HasIce() const;
98
99 protected:
100 std::unique_ptr<IceContainer> _ice; // owning
101};
102
103#endif // HYDROBRICKS_GLACIER_H
Definition Flux.h:9
Definition Glacier.h:11
double GetContent(ContentType type) const override
Definition Glacier.cpp:88
void UpdateContent(double value, ContentType type) override
Definition Glacier.cpp:100
void SurfaceComponentAdded(SurfaceComponent *brick) override
Definition Glacier.cpp:144
double * GetValuePointer(const string &name) override
Definition Glacier.cpp:136
void Reset() override
Definition Glacier.cpp:9
WaterContainer * GetIceContainer() const
Definition Glacier.cpp:65
void SetParameters(const BrickSettings &brickSettings) override
Definition Glacier.cpp:19
void AttachFluxIn(Flux *flux) override
Definition Glacier.cpp:33
void SaveAsInitialState() override
Definition Glacier.cpp:14
void UpdateContentFromInputs() override
Definition Glacier.cpp:114
void Finalize() override
Definition Glacier.cpp:69
bool IsValid(bool checkProcesses=true) const override
Definition Glacier.cpp:45
vecDoublePt GetDynamicContentChanges() override
Definition Glacier.cpp:124
bool HasIce() const
Definition Glacier.cpp:151
void SetInitialState(double value, ContentType type) override
Definition Glacier.cpp:74
void ApplyConstraints(double timeStep) override
Definition Glacier.cpp:119
Definition LandCover.h:10
Definition SurfaceComponent.h:10
Definition WaterContainer.h:9
Definition SettingsModel.h:47