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
16 void Initialize(const SolverSettings& solverSettings);
17
18 void SetModel(ModelHydro* model);
19
20 void ConnectToElementsToSolve();
21
22 int GetNbStateVariables();
23
24 bool ProcessTimeStep();
25
26 vecDoublePt* GetStateVariablesVectorPt() {
27 return &m_stateVariableChanges;
28 }
29
30 vector<Brick*>* GetIterableBricksVectorPt() {
31 return &m_iterableBricks;
32 }
33
34 int GetNbSolvableConnections() const {
35 return m_solvableConnectionsNb;
36 }
37
38 int GetNbDirectConnections() const {
39 return m_directConnectionsNb;
40 }
41
42 protected:
43 Solver* m_solver;
44 ModelHydro* m_model;
45 int m_solvableConnectionsNb;
46 int m_directConnectionsNb;
47 vecDoublePt m_stateVariableChanges;
48 vector<Brick*> m_iterableBricks;
49 axd m_changeRatesNoSolver;
50
51 private:
52 void StoreStateVariableChanges(vecDoublePt& values);
53
54 void ApplyDirectChanges(Brick* brick, int& ptIndex);
55};
56
57#endif // HYDROBRICKS_PROCESSOR_H
Definition Brick.h:10
Definition ModelHydro.h:12
Definition Processor.h:10
Definition Solver.h:9
Definition SettingsModel.h:9