23#ifndef OPM_WELLHELPERS_HEADER_INCLUDED
24#define OPM_WELLHELPERS_HEADER_INCLUDED
26#include <dune/istl/bcrsmatrix.hh>
27#include <dune/common/dynmatrix.hh>
34struct WellProductionControls;
35struct WellInjectionControls;
36enum class WellProducerCMode : std::uint16_t;
37enum class WellInjectorCMode : std::uint16_t;
39namespace wellhelpers {
51template<
typename Scalar>
52class ParallelStandardWellB
55 using Block = Dune::DynamicMatrix<Scalar>;
56 using Matrix = Dune::BCRSMatrix<Block>;
58 ParallelStandardWellB(
const Matrix& B,
62 template<
class X,
class Y>
63 void mv (
const X& x, Y& y)
const;
66 template<
class X,
class Y>
67 void mmv (
const X& x, Y& y)
const;
75Scalar computeHydrostaticCorrection(
const Scalar well_ref_depth,
76 const Scalar vfp_ref_depth,
78 const Scalar gravity);
81template<
typename MatrixType,
typename VectorType,
typename Comm>
82void sumDistributedWellEntries(MatrixType& mat,
89template <
class DenseMatrix>
90DenseMatrix transposeDenseDynMatrix(
const DenseMatrix& M);
93bool rateControlWithZeroProdTarget(
const WellProductionControls& controls,
94 WellProducerCMode mode);
97bool rateControlWithZeroInjTarget(
const WellInjectionControls& controls,
98 WellInjectorCMode mode);
Class encapsulating some information about parallel wells.
Definition ParallelWellInfo.hpp:198
void mv(const X &x, Y &y) const
y = A x
Definition WellHelpers.cpp:52
void mmv(const X &x, Y &y) const
y = A x
Definition WellHelpers.cpp:109
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition blackoilbioeffectsmodules.hh:45