hydrobricks
Loading...
Searching...
No Matches
Processor.h
1#ifndef HYDROBRICKS_PROCESSOR_H
2#define HYDROBRICKS_PROCESSOR_H
3
4#include "Brick.h"
5#include "Includes.h"
6#include "Solver.h"
7
8class ModelHydro;
9
10class Processor : public wxObject {
11 public:
12 explicit Processor();
13
14 ~Processor() override;
15
21 void Initialize(const SolverSettings& solverSettings);
22
28 void SetModel(ModelHydro* model);
29
34
41
47 bool ProcessTimeStep();
48
55 return &m_stateVariableChanges;
56 }
57
63 vector<Brick*>* GetIterableBricksVectorPt() {
64 return &m_iterableBricks;
65 }
66
73 return m_solvableConnectionsNb;
74 }
75
82 return m_directConnectionsNb;
83 }
84
85 protected:
86 Solver* m_solver;
87 ModelHydro* m_model;
88 int m_solvableConnectionsNb;
89 int m_directConnectionsNb;
90 vecDoublePt m_stateVariableChanges;
91 vector<Brick*> m_iterableBricks;
92 axd m_changeRatesNoSolver;
93
94 private:
100 void StoreStateVariableChanges(vecDoublePt& values);
101
108 void ApplyDirectChanges(Brick* brick, int& ptIndex);
109};
110
111#endif // HYDROBRICKS_PROCESSOR_H
Definition Brick.h:10
Definition ModelHydro.h:12
Definition Processor.h:10
void ConnectToElementsToSolve()
Definition Processor.cpp:28
int GetNbDirectConnections() const
Definition Processor.h:81
vector< Brick * > * GetIterableBricksVectorPt()
Definition Processor.h:63
void SetModel(ModelHydro *model)
Definition Processor.cpp:24
int GetNbSolvableConnections() const
Definition Processor.h:72
vecDoublePt * GetStateVariablesVectorPt()
Definition Processor.h:54
bool ProcessTimeStep()
Definition Processor.cpp:90
int GetNbStateVariables()
Definition Processor.cpp:86
void Initialize(const SolverSettings &solverSettings)
Definition Processor.cpp:16
Definition Solver.h:9
Definition SettingsModel.h:9