1#ifndef HYDROBRICKS_PROCESSOR_H
2#define HYDROBRICKS_PROCESSOR_H
87 void EvaluateRates(axd& rates,
double timeStepInDays,
bool applyConstraints =
true);
115 void ApplyRates(
const axd& rates,
double timeStepInDays);
128 return _solvableConnectionCount;
137 return _iterableBricks;
146 return _directConnectionCount;
150 std::unique_ptr<Solver> _solver;
152 int _solvableConnectionCount;
153 int _directConnectionCount;
154 vecDoublePt _stateVariableChanges;
155 vector<Brick*> _iterableBricks;
156 axd _changeRatesNoSolver;
157 axd _ratesBeforeSweep;
166 void ValidateFluxTopology()
const;
173 void StoreStateVariableChanges(std::span<double*> values);
182 void ApplyDirectChanges(
Brick* brick,
int& ptIndex,
double timeStepInDays);
Definition ModelHydro.h:14
Definition Processor.h:12
void ConnectToElementsToSolve()
Definition Processor.cpp:58
void EvaluateRates(axd &rates, double timeStepInDays, bool applyConstraints=true)
Definition Processor.cpp:146
int GetDirectConnectionCount() const
Definition Processor.h:145
void ApplyRates(const axd &rates, double timeStepInDays)
Definition Processor.cpp:211
void ScatterState(const axd &state)
Definition Processor.cpp:133
int GetSolvableConnectionCount() const
Definition Processor.h:127
void SetModel(ModelHydro *model)
Definition Processor.cpp:54
int GetStateVariableCount() const
Definition Processor.cpp:122
void GatherState(axd &state) const
Definition Processor.cpp:126
void FinalizeTimeStep()
Definition Processor.cpp:228
void ResetState()
Definition Processor.cpp:140
void Initialize(const SolverSettings &solverSettings)
Definition Processor.cpp:15
const vector< Brick * > & GetSolvableBricks() const
Definition Processor.h:136
bool ProcessTimeStep(double timeStepInDays)
Definition Processor.cpp:237
void EnforceConstraints(axd &rates, double timeStepInDays)
Definition Processor.cpp:191
void ConstrainRates(axd &rates, double timeStepInDays)
Definition Processor.cpp:174
Definition SettingsModel.h:11