20 #ifndef OPM_TRANSPORTSOLVERTWOPHASEREORDER_HEADER_INCLUDED
21 #define OPM_TRANSPORTSOLVERTWOPHASEREORDER_HEADER_INCLUDED
33 class IncompPropertiesInterface;
62 virtual void solve(
const double* porevolume,
84 void initGravity(
const double* grav);
86 virtual void solveSingleCell(
const int cell);
87 virtual void solveMultiCell(
const int num_cells,
const int* cells);
89 void solveSingleCellGravity(
const std::vector<int>& cells,
91 const double* gravflux);
92 int solveGravityColumn(
const std::vector<int>& cells);
97 std::vector<double> smin_;
98 std::vector<double> smax_;
102 const double* darcyflux_;
103 const double* porevolume_;
104 const double* source_;
106 std::vector<double> saturation_;
107 std::vector<double> fractionalflow_;
108 std::vector<int> reorder_iterations_;
111 std::vector<double> gravflux_;
112 std::vector<double> mob_;
113 std::vector<double> s0_;
114 std::vector<std::vector<int> > columns_;
117 std::vector<int> ia_upw_;
118 std::vector<int> ja_upw_;
119 std::vector<int> ia_downw_;
120 std::vector<int> ja_downw_;
123 double fracFlow(
double s,
int cell)
const;
125 struct GravityResidual;
126 void mobility(
double s,
int cell,
double* mob)
const;
131 #endif // OPM_TRANSPORTMODELTWOPHASE_HEADER_INCLUDED
Definition: IncompPropertiesInterface.hpp:35
Definition: AnisotropicEikonal.hpp:43
const std::vector< int > & getReorderIterations() const
TransportSolverTwophaseReorder(const UnstructuredGrid &grid, const Opm::IncompPropertiesInterface &props, const double *gravity, const double tol, const int maxit)
Definition: ReorderSolverInterface.hpp:38
Simulator state for a two-phase simulator.
Definition: TwophaseState.hpp:30
Base class for two-phase incompressible transport solvers.
Definition: TransportSolverTwophaseInterface.hpp:30
const double gravity
Definition: Units.hpp:120
virtual ~TransportSolverTwophaseReorder()
const UnstructuredGrid & grid
Definition: ColumnExtract.hpp:31
virtual void solve(const double *porevolume, const double *source, const double dt, TwophaseState &state)
Implements a reordering transport solver for incompressible two-phase flow.
Definition: TransportSolverTwophaseReorder.hpp:36
void solveGravity(const double *porevolume, const double dt, TwophaseState &state)