21#ifndef OPM_TRACERTOFSOLVER_HEADER_INCLUDED
22#define OPM_TRACERTOFSOLVER_HEADER_INCLUDED
31namespace FlowDiagnostics
58 const std::vector<double>& pore_volumes,
86 const std::vector<double>& pv_;
87 const std::vector<double> influx_;
88 const std::vector<double> outflux_;
89 std::vector<double> source_term_;
90 std::vector<double> local_source_term_;
91 std::vector<char> is_start_;
92 std::vector<int> sequence_;
93 std::vector<int> component_starts_;
94 std::vector<double> tof_;
95 std::vector<double> tracer_;
96 int num_multicell_ = 0;
97 int max_size_multicell_ = 0;
98 int max_iter_multicell_ = 0;
99 const double max_tof_ = 200.0 * 365.0 * 24.0 * 60.0 * 60.0;
100 const double gauss_seidel_tof_tol_ = max_tof_ / 1e12;
101 const double gauss_seidel_tracer_tol_ = 1
e-9;
105 struct InOutFluxComputer;
111 const std::vector<double>& pore_volumes,
113 InOutFluxComputer&& inout);
115 void prepareForSolve();
119 void setupStartArrayFromSource();
121 void computeOrdering();
131 void solveSingleCell(
const int cell);
133 void solveMultiCell(
const int num_cells,
const int* cells);
Definition: AssembledConnections.hpp:42
Definition: TracerTofSolver.hpp:48
TracerTofSolver(const AssembledConnections &graph, const AssembledConnections &reverse_graph, const std::vector< double > &pore_volumes, const CellSetValues &source_inflow)
std::vector< double > solveGlobal()
LocalSolution solveLocal(const CellSetValues &startset)
std::map< int, double > CellSetValues
Definition: CellSetValues.hpp:29
static const double e
Definition: exprtk.hpp:758
Output data struct for solveLocal().
Definition: TracerTofSolver.hpp:67
CellSetValues concentration
Definition: TracerTofSolver.hpp:69
CellSetValues tof
Definition: TracerTofSolver.hpp:68