opm-simulators
StandardWellEval.hpp
1 /*
2  Copyright 2017 SINTEF Digital, Mathematics and Cybernetics.
3  Copyright 2017 Statoil ASA.
4  Copyright 2016 - 2017 IRIS AS.
5 
6  This file is part of the Open Porous Media project (OPM).
7 
8  OPM is free software: you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation, either version 3 of the License, or
11  (at your option) any later version.
12 
13  OPM is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with OPM. If not, see <http://www.gnu.org/licenses/>.
20 */
21 
22 #ifndef OPM_STANDARDWELL_EVAL_HEADER_INCLUDED
23 #define OPM_STANDARDWELL_EVAL_HEADER_INCLUDED
24 
25 #include <opm/simulators/wells/StandardWellConnections.hpp>
26 #include <opm/simulators/wells/StandardWellEquations.hpp>
27 #include <opm/simulators/wells/StandardWellPrimaryVariables.hpp>
28 
29 #include <opm/material/densead/Evaluation.hpp>
30 
31 #include <vector>
32 
33 namespace Opm
34 {
35 
36 class ConvergenceReport;
37 class DeferredLogger;
38 class Schedule;
39 class SummaryState;
40 template<class Scalar> class WellContributions;
41 template<class FluidSystem, class Indices> class WellInterfaceIndices;
42 template<typename FluidSystem, typename Indices> class WellState;
43 
44 template<class FluidSystem, class Indices>
46 {
47 protected:
48  using Scalar = typename FluidSystem::Scalar;
49  using IndexTraits = typename FluidSystem::IndexTraitsType;
52  static constexpr int Bhp = PrimaryVariables::Bhp;
53  static constexpr int WQTotal= PrimaryVariables::WQTotal;
54  static constexpr int numWellConservationEq = PrimaryVariables::numWellConservationEq;
55 
56  static constexpr bool has_wfrac_variable = PrimaryVariables::has_wfrac_variable;
57  static constexpr bool has_gfrac_variable = PrimaryVariables::has_gfrac_variable;
58  static constexpr int WFrac = PrimaryVariables::WFrac;
59  static constexpr int GFrac = PrimaryVariables::GFrac;
60  static constexpr int SFrac = PrimaryVariables::SFrac;
61 
62 public:
63  using EvalWell = typename PrimaryVariables::EvalWell;
64  using Eval = DenseAd::Evaluation<Scalar, Indices::numDerivatives>;
66 
69  { return linSys_; }
70 
71 protected:
73 
75 
76  EvalWell extendEval(const Eval& in) const;
77 
78  // computing the accumulation term for later use in well mass equations
79  void computeAccumWell();
80 
81  ConvergenceReport getWellConvergence(const WellState<Scalar, IndexTraits>& well_state,
82  const std::vector<Scalar>& B_avg,
83  const Scalar maxResidualAllowed,
84  const Scalar tol_wells,
85  const Scalar relaxed_tolerance_flow,
86  const bool relax_tolerance,
87  const bool well_is_stopped,
88  std::vector<Scalar>& res,
89  DeferredLogger& deferred_logger) const;
90 
91  void init(std::vector<Scalar>& perf_depth,
92  const std::vector<Scalar>& depth_arg,
93  const bool has_polymermw);
94 
96 
97  // the saturations in the well bore under surface conditions at the beginning of the time step
98  std::vector<Scalar> F0_;
99 
102 };
103 
104 }
105 
106 #endif // OPM_STANDARDWELL_EVAL_HEADER_INCLUDED
Definition: StandardWellEval.hpp:45
const StandardWellEquations< Scalar, IndexTraits, Indices::numEq > & linSys() const
Returns a const reference to equation system.
Definition: StandardWellEval.hpp:68
Class holding primary variables for StandardWell.
Definition: StandardWellAssemble.hpp:35
PrimaryVariables primary_variables_
Primary variables for well.
Definition: StandardWellEval.hpp:95
Definition: StandardWellConnections.hpp:45
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: blackoilbioeffectsmodules.hh:45
Definition: StandardWellAssemble.hpp:34
Definition: MultisegmentWellAssemble.hpp:38
Definition: DeferredLogger.hpp:56
static constexpr int numWellConservationEq
Number of the conservation equations.
Definition: StandardWellPrimaryVariables.hpp:67
DenseAd::DynamicEvaluation< Scalar, numStaticWellEq+Indices::numEq+1 > EvalWell
Evaluation for the well equations.
Definition: StandardWellPrimaryVariables.hpp:89
static constexpr int WQTotal
The index for the weighted total rate.
Definition: StandardWellPrimaryVariables.hpp:73
static constexpr int Bhp
The index for Bhp in primary variables and the index of well control equation.
Definition: StandardWellPrimaryVariables.hpp:78
Represents the convergence status of the whole simulator, to make it possible to query and store the ...
Definition: ConvergenceReport.hpp:37
StdWellConnections connections_
Connection level values.
Definition: StandardWellEval.hpp:101
StandardWellEquations< Scalar, IndexTraits, Indices::numEq > linSys_
Linear equation system.
Definition: StandardWellEval.hpp:100
The state of a set of wells, tailored for use by the fully implicit blackoil simulator.
Definition: TemperatureModel.hpp:61