#include <IncompTpfa.hpp>
|
| IncompTpfa (const UnstructuredGrid &grid, const IncompPropertiesInterface &props, LinearSolverInterface &linsolver, const double *gravity, const Wells *wells, const std::vector< double > &src, const FlowBoundaryConditions *bcs) |
|
| IncompTpfa (const UnstructuredGrid &grid, const IncompPropertiesInterface &props, const RockCompressibility *rock_comp_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) |
|
virtual | ~IncompTpfa () |
| Destructor. More...
|
|
void | solve (const double dt, TwophaseState &state, WellState &well_state) |
|
const std::vector< double > & | getHalfTrans () const |
| Expose read-only reference to internal half-transmissibility. More...
|
|
Encapsulating a tpfa pressure solver for the incompressible-fluid case. 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.
Construct solver for incompressible case. - Parameters
-
[in] | grid | A 2d or 3d grid. |
[in] | props | Rock and fluid properties. |
[in] | linsolver | Linear solver to use. |
[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. |
Opm::IncompTpfa::IncompTpfa |
( |
const UnstructuredGrid & |
grid, |
|
|
const IncompPropertiesInterface & |
props, |
|
|
const RockCompressibility * |
rock_comp_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] | 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. |
virtual Opm::IncompTpfa::~IncompTpfa |
( |
| ) |
|
|
virtual |
const std::vector<double>& Opm::IncompTpfa::getHalfTrans |
( |
| ) |
const |
|
inline |
Expose read-only reference to internal half-transmissibility.
References htrans_.
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).
std::vector<int> Opm::IncompTpfa::allcells_ |
|
protected |
const double Opm::IncompTpfa::change_tol_ |
|
protected |
std::vector<double> Opm::IncompTpfa::gpress_ |
|
protected |
std::vector<double> Opm::IncompTpfa::gpress_omegaweighted_ |
|
protected |
const double* Opm::IncompTpfa::gravity_ |
|
protected |
std::vector<double> Opm::IncompTpfa::htrans_ |
|
protected |
std::vector<double> Opm::IncompTpfa::initial_porevol_ |
|
protected |
const int Opm::IncompTpfa::maxiter_ |
|
protected |
std::vector<double> Opm::IncompTpfa::omega_ |
|
protected |
std::vector<double> Opm::IncompTpfa::porevol_ |
|
protected |
std::vector<double> Opm::IncompTpfa::pressures_ |
|
protected |
const double Opm::IncompTpfa::residual_tol_ |
|
protected |
std::vector<double> Opm::IncompTpfa::rock_comp_ |
|
protected |
const std::vector<double>& Opm::IncompTpfa::src_ |
|
protected |
std::vector<double> Opm::IncompTpfa::totmob_ |
|
protected |
std::vector<double> Opm::IncompTpfa::trans_ |
|
protected |
std::vector<double> Opm::IncompTpfa::wdp_ |
|
protected |
const Wells* Opm::IncompTpfa::wells_ |
|
protected |
The documentation for this class was generated from the following file:
|