#include <IncompTpfaPolymer.hpp>
|
| IncompTpfaPolymer (const UnstructuredGrid &grid, const IncompPropertiesInterface &props, const RockCompressibility *rock_comp_props, const PolymerProperties &poly_props, LinearSolverInterface &linsolver, const double residual_tol, const double change_tol, const int maxiter, const double *gravity, const Wells *wells, const std::vector< double > &src, const FlowBoundaryConditions *bcs) |
|
void | solve (const double dt, PolymerState &state, WellState &well_state) |
|
Encapsulating a tpfa pressure solver for the incompressible-fluid case with polymer. Supports gravity, wells controlled by bhp or reservoir rates, boundary conditions and simple sources as driving forces. Rock compressibility can be included, and necessary nonlinear iterations are handled. Below we use the shortcuts D for the number of dimensions, N for the number of cells and F for the number of faces.
Opm::IncompTpfaPolymer::IncompTpfaPolymer |
( |
const UnstructuredGrid & |
grid, |
|
|
const IncompPropertiesInterface & |
props, |
|
|
const RockCompressibility * |
rock_comp_props, |
|
|
const PolymerProperties & |
poly_props, |
|
|
LinearSolverInterface & |
linsolver, |
|
|
const double |
residual_tol, |
|
|
const double |
change_tol, |
|
|
const int |
maxiter, |
|
|
const double * |
gravity, |
|
|
const Wells * |
wells, |
|
|
const std::vector< double > & |
src, |
|
|
const FlowBoundaryConditions * |
bcs |
|
) |
| |
Construct solver, possibly with rock compressibility. - Parameters
-
[in] | grid | A 2d or 3d grid. |
[in] | props | Rock and fluid properties. |
[in] | rock_comp_props | Rock compressibility properties. May be null. |
[in] | poly_props | Polymer properties. |
[in] | linsolver | Linear solver to use. |
[in] | residual_tol | Solution accepted if inf-norm of residual is smaller. |
[in] | change_tol | Solution accepted if inf-norm of change in pressure is smaller. |
[in] | maxiter | Maximum acceptable number of iterations. |
[in] | gravity | Gravity vector. If non-null, the array should have D elements. |
[in] | wells | The wells argument. Will be used in solution, is ignored if NULL. Note: this class observes the well object, and makes the assumption that the well topology and completions does not change during the run. However, controls (only) are allowed to change. |
[in] | src | Source terms. May be empty(). |
[in] | bcs | Boundary conditions, treat as all noflow if null. |
void Opm::IncompTpfaPolymer::solve |
( |
const double |
dt, |
|
|
PolymerState & |
state, |
|
|
WellState & |
well_state |
|
) |
| |
Solve the pressure equation. If there is no pressure dependency introduced by rock compressibility effects, the equation is linear, and it is solved directly. Otherwise, the nonlinear equations ares solved by a Newton-Raphson scheme. May throw an exception if the number of iterations exceed maxiter (set in constructor).
The documentation for this class was generated from the following file:
|