20 #ifndef OPM_TRANSPORTSOLVERTWOPHASEREORDER_HEADER_INCLUDED 21 #define OPM_TRANSPORTSOLVERTWOPHASEREORDER_HEADER_INCLUDED 23 #include <opm/core/transport/reorder/ReorderSolverInterface.hpp> 24 #include <opm/core/transport/TransportSolverTwophaseInterface.hpp> 28 struct UnstructuredGrid;
33 class IncompPropertiesInterface;
47 const double* gravity,
62 virtual void solve(
const double* porevolume,
81 const std::vector<int>& getReorderIterations()
const;
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);
94 const UnstructuredGrid& grid_;
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;
126 void mobility(
double s,
int cell,
double* mob)
const;
131 #endif // OPM_TRANSPORTMODELTWOPHASE_HEADER_INCLUDED Definition: TwophaseState.hpp:27
Interface for implementing reordering solvers.
Definition: ReorderSolverInterface.hpp:38
Definition: TransportSolverTwophaseReorder.cpp:136
Base class for two-phase incompressible transport solvers.
Definition: TransportSolverTwophaseInterface.hpp:30
Definition: TransportSolverTwophaseReorder.cpp:476
Definition: AnisotropicEikonal.cpp:446
Implements a reordering transport solver for incompressible two-phase flow.
Definition: TransportSolverTwophaseReorder.hpp:36
virtual void solve(const double *porevolume, const double *source, const double dt, TwophaseState &state)
Solve for saturation at next timestep.
Definition: TransportSolverTwophaseReorder.cpp:93
Abstract base class for incompressible fluid and reservoir properties.
Definition: IncompPropertiesInterface.hpp:35
TransportSolverTwophaseReorder(const UnstructuredGrid &grid, const Opm::IncompPropertiesInterface &props, const double *gravity, const double tol, const int maxit)
Construct solver.
Definition: TransportSolverTwophaseReorder.cpp:46
void solveGravity(const double *porevolume, const double dt, TwophaseState &state)
Solve for gravity segregation.
Definition: TransportSolverTwophaseReorder.cpp:642