Implements a reordering transport solver for compressible, non-miscible two-phase flow.
More...
#include <TransportSolverCompressibleTwophaseReorder.hpp>
|
| TransportSolverCompressibleTwophaseReorder (const UnstructuredGrid &grid, const Opm::BlackoilPropertiesInterface &props, const double tol, const int maxit) |
| Construct solver. More...
|
|
void | solve (const double *darcyflux, const double *pressure, const double *temperature, const double *porevolume0, const double *porevolume, const double *source, const double dt, std::vector< double > &saturation, std::vector< double > &surfacevol) |
| Solve for saturation at next timestep. More...
|
|
void | initGravity (const double *grav) |
| Initialise quantities needed by gravity solver. More...
|
|
void | solveGravity (const std::vector< std::vector< int > > &columns, const double dt, std::vector< double > &saturation, std::vector< double > &surfacevol) |
| Solve for gravity segregation. More...
|
|
|
void | reorderAndTransport (const UnstructuredGrid &grid, const double *darcyflux) |
|
const std::vector< int > & | sequence () const |
|
const std::vector< int > & | components () const |
|
Implements a reordering transport solver for compressible, non-miscible two-phase flow.
Opm::TransportSolverCompressibleTwophaseReorder::TransportSolverCompressibleTwophaseReorder |
( |
const UnstructuredGrid & |
grid, |
|
|
const Opm::BlackoilPropertiesInterface & |
props, |
|
|
const double |
tol, |
|
|
const int |
maxit |
|
) |
| |
Construct solver.
- Parameters
-
[in] | grid | A 2d or 3d grid. |
[in] | props | Rock and fluid properties. |
[in] | tol | Tolerance used in the solver. |
[in] | maxit | Maximum number of non-linear iterations used. |
void Opm::TransportSolverCompressibleTwophaseReorder::initGravity |
( |
const double * |
grav | ) |
|
Initialise quantities needed by gravity solver.
- Parameters
-
void Opm::TransportSolverCompressibleTwophaseReorder::solve |
( |
const double * |
darcyflux, |
|
|
const double * |
pressure, |
|
|
const double * |
temperature, |
|
|
const double * |
porevolume0, |
|
|
const double * |
porevolume, |
|
|
const double * |
source, |
|
|
const double |
dt, |
|
|
std::vector< double > & |
saturation, |
|
|
std::vector< double > & |
surfacevol |
|
) |
| |
Solve for saturation at next timestep.
- Parameters
-
[in] | darcyflux | Array of signed face fluxes. |
[in] | pressure | Array of cell pressures |
[in] | temperature | Array of cell temperatures |
[in] | surfacevol0 | Array of surface volumes at start of timestep |
[in] | porevolume0 | Array of pore volumes at start of timestep. |
[in] | porevolume | Array of pore volumes at end of timestep. |
[in] | source | Transport source term. |
[in] | dt | Time step. |
[in,out] | saturation | Phase saturations. |
[in,out] | surfacevol | Surface volume densities for each phase. |
void Opm::TransportSolverCompressibleTwophaseReorder::solveGravity |
( |
const std::vector< std::vector< int > > & |
columns, |
|
|
const double |
dt, |
|
|
std::vector< double > & |
saturation, |
|
|
std::vector< double > & |
surfacevol |
|
) |
| |
Solve for gravity segregation.
This uses a column-wise nonlinear Gauss-Seidel approach. It assumes that the input columns contain cells in a single vertical stack, that do not interact with other columns (for gravity segregation.
- Parameters
-
[in] | columns | Vector of cell-columns. |
[in] | dt | Time step. |
[in,out] | saturation | Phase saturations. |
[in,out] | surfacevol | Surface volume densities for each phase. |
The documentation for this class was generated from the following files: