hydrobricks
Loading...
Searching...
No Matches
Snowpack.h
1#ifndef HYDROBRICKS_SNOWPACK_H
2#define HYDROBRICKS_SNOWPACK_H
3
4#include <memory>
5
6#include "Includes.h"
7#include "SnowContainer.h"
8#include "SurfaceComponent.h"
9
10class Snowpack : public SurfaceComponent {
11 public:
12 Snowpack();
13
17 void Reset() override;
18
22 void SaveAsInitialState() override;
23
27 void SetParameters(const BrickSettings& brickSettings) override;
28
32 void AttachFluxIn(Flux* flux) override;
33
37 [[nodiscard]] bool IsValid(bool checkProcesses = true) const override;
38
45
49 void Finalize() override;
50
54 void SetInitialState(double value, ContentType type) override;
55
59 double GetContent(ContentType type) const override;
60
64 void UpdateContent(double value, ContentType type) override;
65
69 void UpdateContentFromInputs() override;
70
74 void ApplyConstraints(double timeStep) override;
75
79 vecDoublePt GetDynamicContentChanges() override;
80
84 double* GetValuePointer(const string& name) override;
85
91 [[nodiscard]] bool HasSnow() const;
92
93 protected:
94 std::unique_ptr<SnowContainer> _snow; // owning
95};
96
97#endif // HYDROBRICKS_SNOWPACK_H
Definition Flux.h:9
Definition Snowpack.h:10
void SetInitialState(double value, ContentType type) override
Definition Snowpack.cpp:63
void SetParameters(const BrickSettings &brickSettings) override
Definition Snowpack.cpp:19
WaterContainer * GetSnowContainer() const
Definition Snowpack.cpp:54
void ApplyConstraints(double timeStep) override
Definition Snowpack.cpp:108
void Finalize() override
Definition Snowpack.cpp:58
void AttachFluxIn(Flux *flux) override
Definition Snowpack.cpp:23
void UpdateContentFromInputs() override
Definition Snowpack.cpp:103
void UpdateContent(double value, ContentType type) override
Definition Snowpack.cpp:89
vecDoublePt GetDynamicContentChanges() override
Definition Snowpack.cpp:113
bool HasSnow() const
Definition Snowpack.cpp:133
void Reset() override
Definition Snowpack.cpp:9
bool IsValid(bool checkProcesses=true) const override
Definition Snowpack.cpp:35
double GetContent(ContentType type) const override
Definition Snowpack.cpp:77
double * GetValuePointer(const string &name) override
Definition Snowpack.cpp:125
void SaveAsInitialState() override
Definition Snowpack.cpp:14
Definition SurfaceComponent.h:10
Definition WaterContainer.h:9
Definition SettingsModel.h:47