22#ifndef OPM_MULTISEGMENTWELL_EVAL_HEADER_INCLUDED
23#define OPM_MULTISEGMENTWELL_EVAL_HEADER_INCLUDED
25#include <opm/simulators/wells/MultisegmentWellEquations.hpp>
26#include <opm/simulators/wells/MultisegmentWellGeneric.hpp>
27#include <opm/simulators/wells/MultisegmentWellPrimaryVariables.hpp>
28#include <opm/simulators/wells/MultisegmentWellSegments.hpp>
30#include <opm/material/densead/Evaluation.hpp>
40class ConvergenceReport;
43class WellContributions;
44template<
class Flu
idSystem,
class Indices,
class Scalar>
class WellInterfaceIndices;
47template<
typename Flu
idSystem,
typename Indices,
typename Scalar>
52 static constexpr int numWellEq = PrimaryVariables::numWellEq;
53 static constexpr int SPres = PrimaryVariables::SPres;
54 static constexpr int WQTotal = PrimaryVariables::WQTotal;
59 using BVector =
typename Equations::BVector;
60 using BVectorWell =
typename Equations::BVectorWell;
65 using EvalWell =
typename PrimaryVariables::EvalWell;
66 using Eval = DenseAd::Evaluation<Scalar, Indices::numEq>;
76 void initMatrixAndVectors(
const int num_cells);
78 void assembleDefaultPressureEq(
const int seg,
82 void assembleICDPressureEq(
const int seg,
88 void assemblePressureEq(
const int seg,
95 const std::vector<double>&
B_avg,
97 const double max_residual_allowed,
104 std::pair<bool, std::vector<Scalar> >
105 getFiniteWellResiduals(
const std::vector<Scalar>&
B_avg,
108 double getControlTolerance(
const WellState& well_state,
113 double getResidualMeasureValue(
const WellState& well_state,
119 void handleAccelerationPressureLoss(
const int seg,
122 EvalWell pressureDropAutoICD(
const int seg,
126 EvalWell extendEval(
const Eval&
in)
const;
135 std::vector<double> cell_perforation_depth_diffs_;
138 std::vector<double> cell_perforation_pressure_diffs_;
Definition AquiferInterface.hpp:35
Represents the convergence status of the whole simulator, to make it possible to query and store the ...
Definition ConvergenceReport.hpp:38
Definition DeferredLogger.hpp:57
Definition MultisegmentWellEval.hpp:49
Equations linSys_
The equation system.
Definition MultisegmentWellEval.hpp:130
PrimaryVariables primary_variables_
The primary variables.
Definition MultisegmentWellEval.hpp:131
ConvergenceReport getWellConvergence(const WellState &well_state, const std::vector< double > &B_avg, DeferredLogger &deferred_logger, const double max_residual_allowed, const double tolerance_wells, const double relaxed_inner_tolerance_flow_ms_well, const double tolerance_pressure_ms_wells, const double relaxed_inner_tolerance_pressure_ms_well, const bool relax_tolerance) const
check whether the well equations get converged for this well
Definition MultisegmentWellEval.cpp:81
const Equations & linSys() const
Returns a const reference to equation system.
Definition MultisegmentWellEval.hpp:70
MSWSegments segments_
Segment properties.
Definition MultisegmentWellEval.hpp:132
Definition MultisegmentWellGeneric.hpp:42
The state of a set of wells, tailored for use by the fully implicit blackoil simulator.
Definition WellState.hpp:60
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition BlackoilPhases.hpp:27