This class solves the fully implicit black-oil system by solving the reduced system (after eliminating well variables) as a block-structured matrix (one block for all cell variables) for a fixed number of cell variables np . More...
Public Types | |
typedef NewtonIterationBlackoilInterface::SolutionVector | SolutionVector |
![]() | |
typedef LinearisedBlackoilResidual::ADB::V | SolutionVector |
Return type for linearSolve(). A simple, non-ad vector type. | |
Public Member Functions | |
NewtonIterationBlackoilInterleavedImpl (const NewtonIterationBlackoilInterleavedParameters ¶m, const boost::any ¶llelInformation_arg=boost::any()) | |
Construct a system solver. More... | |
int | iterations () const |
Solve the system of linear equations Ax = b, with A being the combined derivative matrix of the residual and b being the residual itself. More... | |
const boost::any & | parallelInformation () const |
Get the information about the parallelization of the grid. More... | |
void | formInterleavedSystem (const std::vector< LinearisedBlackoilResidual::ADB > &eqs, Mat &istlA) const |
SolutionVector | computeNewtonIncrement (const LinearisedBlackoilResidual &residual) const |
Solve the linear system Ax = b, with A being the combined derivative matrix of the residual and b being the residual itself. More... | |
Protected Attributes | |
ISTLSolverType | istlSolver_ |
NewtonIterationBlackoilInterleavedParameters | parameters_ |
This class solves the fully implicit black-oil system by solving the reduced system (after eliminating well variables) as a block-structured matrix (one block for all cell variables) for a fixed number of cell variables np .
|
inline |
Construct a system solver.
[in] | param | parameters controlling the behaviour of the linear solvers |
[in] | parallelInformation | In the case of a parallel run with dune-istl the information about the parallelization. |
|
inlinevirtual |
Solve the linear system Ax = b, with A being the combined derivative matrix of the residual and b being the residual itself.
[in] | residual | residual object containing A and b. |
Implements Opm::NewtonIterationBlackoilInterface.
|
inline |
Go through all jacobians, and insert in correct spot
The straight forward way to do this would be to run through each element in the output matrix, and set all block entries by gathering from all "input matrices" (derivatives).
A faster alternative is to instead run through each "input matrix" and insert its elements in the correct spot in the output matrix.
|
inlinevirtual |
Solve the system of linear equations Ax = b, with A being the combined derivative matrix of the residual and b being the residual itself.
[in] | residual | residual object containing A and b. |
Implements Opm::NewtonIterationBlackoilInterface.
|
inlinevirtual |
Get the information about the parallelization of the grid.
Implements Opm::NewtonIterationBlackoilInterface.