20#ifndef OPM_TOFREORDER_HEADER_INCLUDED
21#define OPM_TOFREORDER_HEADER_INCLUDED
28struct UnstructuredGrid;
33 class IncompPropertiesInterface;
34 template <
typename T>
class SparseTable;
50 const bool use_multidim_upwind =
false);
60 const double* porevolume,
62 std::vector<double>& tof);
76 const double* porevolume,
79 std::vector<double>& tof,
80 std::vector<double>& tracer);
84 virtual void solveSingleCell(
const int cell);
85 void solveSingleCellMultidimUpwind(
const int cell);
86 void assembleSingleCell(
const int cell,
87 std::vector<int>& local_column,
88 std::vector<double>& local_coefficient,
90 virtual void solveMultiCell(
const int num_cells,
const int* cells);
92 void multidimUpwindTerms(
const int face,
const int upwind_cell,
93 double& face_term,
double& cell_term_factor)
const;
94 void localMultidimUpwindTerms(
const int face,
const int upwind_cell,
const int node_pos,
95 double& face_term,
double& cell_term_factor)
const;
98 const UnstructuredGrid& grid_;
99 const double* darcyflux_;
100 const double* porevolume_;
101 const double* source_;
103 bool compute_tracer_;
104 enum { NoTracerHead = -1 };
105 std::vector<int> tracerhead_by_cell_;
107 double gauss_seidel_tol_;
109 int max_size_multicell_;
110 int max_iter_multicell_;
112 bool use_multidim_upwind_;
113 std::vector<double> face_tof_;
114 std::vector<double> face_part_tof_;
Definition: ReorderSolverInterface.hpp:39
Definition: TofDiscGalReorder.hpp:38
Definition: TofReorder.hpp:44
void solveTofTracer(const double *darcyflux, const double *porevolume, const double *source, const SparseTable< int > &tracerheads, std::vector< double > &tof, std::vector< double > &tracer)
TofReorder(const UnstructuredGrid &grid, const bool use_multidim_upwind=false)
void solveTof(const double *darcyflux, const double *porevolume, const double *source, std::vector< double > &tof)
Definition: AnisotropicEikonal.hpp:44