hydrobricks
Loading...
Searching...
No Matches
Solver.h
1#ifndef HYDROBRICKS_SOLVER_H
2#define HYDROBRICKS_SOLVER_H
3
4#include "Includes.h"
5#include "SettingsModel.h"
6
7class Processor;
8
9class Solver : public wxObject {
10 public:
11 explicit Solver();
12
18 virtual bool Solve() = 0;
19
26 static Solver* Factory(const SolverSettings& solverSettings);
27
33 void Connect(Processor* processor) {
34 wxASSERT(processor);
35 m_processor = processor;
36 }
37
42
43 protected:
44 Processor* m_processor;
45 axxd m_stateVariableChanges;
46 axxd m_changeRates;
47 int m_nIterations;
48
54 void SaveStateVariables(int col);
55
62 void ComputeChangeRates(int col, bool applyConstraints = true);
63
69 void ApplyConstraintsFor(int col);
70
75
80 void SetStateVariablesToIteration(int col);
81
87 void SetStateVariablesToAvgOf(int col1, int col2);
88
94 void ApplyProcesses(int col) const;
95
101 void ApplyProcesses(const axd& changeRates) const;
102
106 void Finalize() const;
107
108 private:
109};
110
111#endif // HYDROBRICKS_SOLVER_H
Definition Processor.h:10
Definition Solver.h:9
void SaveStateVariables(int col)
Definition Solver.cpp:30
void ComputeChangeRates(int col, bool applyConstraints=true)
Definition Solver.cpp:39
virtual bool Solve()=0
void Connect(Processor *processor)
Definition Solver.h:33
void ApplyConstraintsFor(int col)
Definition Solver.cpp:68
void SetStateVariablesToAvgOf(int col1, int col2)
Definition Solver.cpp:101
void Finalize() const
Definition Solver.cpp:144
void InitializeContainers()
Definition Solver.cpp:23
void ApplyProcesses(int col) const
Definition Solver.cpp:110
static Solver * Factory(const SolverSettings &solverSettings)
Definition Solver.cpp:12
void ResetStateVariableChanges()
Definition Solver.cpp:85
void SetStateVariablesToIteration(int col)
Definition Solver.cpp:92
Definition SettingsModel.h:9