20 #ifndef OPM_COMP_WELL_EQUATIONS_HPP 21 #define OPM_COMP_WELL_EQUATIONS_HPP 23 #include <dune/common/fmatrix.hh> 24 #include <dune/common/fvector.hh> 25 #include <dune/istl/bcrsmatrix.hh> 26 #include <dune/istl/bvector.hh> 31 template <
typename Scalar,
int numWellEq,
int numEq>
42 using VectorBlockWellType = Dune::FieldVector<Scalar, numWellEq>;
43 using BVectorWell = Dune::BlockVector<VectorBlockWellType>;
46 using VectorBlockType = Dune::FieldVector<Scalar, numEq>;
47 using BVector = Dune::BlockVector<VectorBlockType>;
50 using DiagMatrixBlockWellType = Dune::FieldMatrix<Scalar, numWellEq>;
51 using DiagMatWell = Dune::BCRSMatrix<DiagMatrixBlockWellType>;
54 using OffDiagMatrixBlockWellType = Dune::FieldMatrix<Scalar, numWellEq, numEq>;
55 using OffDiagMatWell = Dune::BCRSMatrix<OffDiagMatrixBlockWellType>;
57 void init(
const int num_conn,
const std::vector<std::size_t>& cells);
76 BVectorWell& residual()
81 const BVectorWell& residual()
const 86 void solve(BVectorWell& dx_well)
const;
90 void apply(BVector& r)
const;
92 void recoverSolutionWell(
const BVector& x, BVectorWell& xw)
const;
96 OffDiagMatWell duneB_;
97 OffDiagMatWell duneC_;
100 DiagMatWell invDuneD_;
104 BVectorWell resWell_;
107 mutable BVectorWell Bx_;
108 mutable BVectorWell invDrw_;
112 std::vector<std::size_t> cells_;
117 #include "CompWellEquations_impl.hpp" 119 #endif // OPM_COMP_WELL_EQUATIONS_HPP Definition: CompWellEquations.hpp:32
Structs needed for tpfalinearizer and its gpuparams struct extracted to be defined in one place that ...
Definition: blackoilbioeffectsmodules.hh:45