23 #ifndef OPM_WELLHELPERS_HEADER_INCLUDED 24 #define OPM_WELLHELPERS_HEADER_INCLUDED 26 #include <dune/istl/bcrsmatrix.hh> 27 #include <dune/common/dynmatrix.hh> 33 template<
class Scalar>
class ParallelWellInfo;
34 struct WellProductionControls;
35 struct WellInjectionControls;
36 enum class WellProducerCMode : std::uint16_t;
37 enum class WellInjectorCMode : std::uint16_t;
39 namespace wellhelpers {
51 template<
typename Scalar>
55 using Block = Dune::DynamicMatrix<Scalar>;
56 using Matrix = Dune::BCRSMatrix<Block>;
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;
74 template<
class Scalar>
75 Scalar computeHydrostaticCorrection(
const Scalar well_ref_depth,
76 const Scalar vfp_ref_depth,
78 const Scalar gravity);
81 template<
typename MatrixType,
typename VectorType,
typename Comm>
82 void sumDistributedWellEntries(MatrixType& mat,
89 template <
class DenseMatrix>
90 DenseMatrix transposeDenseDynMatrix(
const DenseMatrix& M);
93 bool rateControlWithZeroProdTarget(
const WellProductionControls& controls,
94 WellProducerCMode mode);
97 bool rateControlWithZeroInjTarget(
const WellInjectionControls& controls,
98 WellInjectorCMode mode);
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: blackoilbioeffectsmodules.hh:45
Class encapsulating some information about parallel wells.
Definition: MSWellHelpers.hpp:34
A wrapper around the B matrix for distributed wells.
Definition: WellHelpers.hpp:52