Loading...
Searching...
No Matches
Opm::MultisegmentWellEquations< Scalar, IndexTraits, numWellEq, numEq > Class Template Reference

## Public Types

using | VectorBlockWellType = Dune::FieldVector<Scalar,numWellEq>
using | BVectorWell = Dune::BlockVector<VectorBlockWellType>
using | VectorBlockType = Dune::FieldVector<Scalar,numEq>
using | BVector = Dune::BlockVector<VectorBlockType>
using | DiagMatrixBlockWellType = Dune::FieldMatrix<Scalar,numWellEq,numWellEq>
using | DiagMatWell = Dune::BCRSMatrix<DiagMatrixBlockWellType>
using | OffDiagMatrixBlockWellType = Dune::FieldMatrix<Scalar,numWellEq,numEq>
using | OffDiagMatWell = Dune::BCRSMatrix<OffDiagMatrixBlockWellType>

## Public Member Functions

| MultisegmentWellEquations (const MultisegmentWellGeneric< Scalar, IndexTraits > &well, const ParallelWellInfo< Scalar > &pw_info)
void | init (const int numPerfs, const std::vector< int > &cells, const std::vector< std::vector< int > > &segment_inlets, const std::vector< std::vector< int > > &segment_perforations)
| Setup sparsity pattern for the matrices.
void | clear ()
| Set all coefficients to 0.
void | apply (const BVector &x, BVector &Ax) const
| Apply linear operator to vector.
void | apply (BVector &r) const
| Apply linear operator to vector.
void | createSolver ()
| Compute the LU-decomposition of D matrix.
BVectorWell | solve () const
| Apply inverted D matrix to residual and return result.
BVectorWell | solve (const BVectorWell &rhs) const
| Apply inverted D matrix to rhs and return result.
void | recoverSolutionWell (const BVector &x, BVectorWell &xw) const
| Recover well solution.
template<class SparseMatrixAdapter>
void | extract (SparseMatrixAdapter &jacobian) const
| Add the matrices of this well to the sparse matrix adapter.
template<class PressureMatrix>
void | extractCPRPressureMatrix (PressureMatrix &jacobian, const BVector &weights, const int pressureVarIndex, const bool, const WellInterfaceGeneric< Scalar, IndexTraits > &well, const int seg_pressure_var_ind, const WellState< Scalar, IndexTraits > &well_state) const
| Extract CPR pressure matrix.
void | sumDistributed (Parallel::Communication comm)
| Sum with off-process contribution.
const BVectorWell & | residual () const
| Returns a const reference to the residual.

## Friends

class | MultisegmentWellEquationAccess< Scalar, IndexTraits, numWellEq, numEq >

## Member Function Documentation

## init()

template<class Scalar, typename IndexTraits, int numWellEq, int numEq>

void Opm::MultisegmentWellEquations< Scalar, IndexTraits, numWellEq, numEq >::init | ( | const int | numPerfs,
|  | const std::vector< int > & | cells,
|  | const std::vector< std::vector< int > > & | segment_inlets,
|  | const std::vector< std::vector< int > > & | segment_perforations )

Setup sparsity pattern for the matrices.

Parameters

  numPerfs | Number of perforations
  cells | Cell indices for perforations
  segment_inlets | Cell indices for segment inlets
  segment_perforations | Cell indices for segment perforations

## recoverSolutionWell()

template<class Scalar, typename IndexTraits, int numWellEq, int numEq>

void Opm::MultisegmentWellEquations< Scalar, IndexTraits, numWellEq, numEq >::recoverSolutionWell | ( | const BVector & | x,
|  | BVectorWell & | xw ) const

Recover well solution.

xw = inv(D)*(rw - C*x)

The documentation for this class was generated from the following files:

- opm/simulators/wells/MultisegmentWellAssemble.hpp
- opm/simulators/wells/MultisegmentWellEquations.hpp
- opm/simulators/wells/MultisegmentWellEquations.cpp