36#ifndef OPENRS_EULERUPSTREAMRESIDUAL_HEADER
37#define OPENRS_EULERUPSTREAMRESIDUAL_HEADER
41#include <boost/unordered_map.hpp>
43#include <opm/core/utility/parameters/ParameterGroup.hpp>
44#include <opm/core/utility/SparseVector.hpp>
49 namespace EulerUpstreamResidualDetails {
51 template <
class UpstreamSolver,
class PressureSolution>
58 template <
class Gr
idInterface,
class ReservoirProperties,
class BoundaryConditions>
62 template <
class S,
class P>
64 typedef typename GridInterface::CellIterator
CIt;
65 typedef typename CIt::FaceIterator
FIt;
67 typedef ReservoirProperties
RP;
76 const ReservoirProperties& resprop,
77 const BoundaryConditions& boundary);
80 const ReservoirProperties& resprop,
81 const BoundaryConditions& boundary);
84 template <
class FlowSolution>
86 const typename GridInterface::Vector& gravity,
87 const FlowSolution& flow_sol,
88 const Opm::SparseVector<double>& injection_rates,
89 const bool method_viscous,
90 const bool method_gravity,
91 const bool method_capillary,
92 std::vector<double>& sat_delta)
const;
96 const GridInterface&
grid()
const;
103 typename GridInterface::Vector
104 estimateCapPressureGradient(
const FIt& f,
const FIt& nbf,
const std::vector<double>& saturation)
const;
106 const GridInterface* pgrid_;
107 const ReservoirProperties* preservoir_properties_;
108 const BoundaryConditions* pboundary_;
112 std::vector<FIt> bid_to_face_;
115 std::vector<CIt> cell_iters_;
118 mutable std::vector<double> cap_pressures_;
119 mutable const Opm::SparseVector<double>* pinjection_rates_;
120 mutable bool method_viscous_;
121 mutable bool method_gravity_;
122 mutable bool method_capillary_;
Definition: EulerUpstreamResidual.hpp:60
EulerUpstreamResidual()
Definition: EulerUpstreamResidual_impl.hpp:371
void initObj(const GridInterface &grid, const ReservoirProperties &resprop, const BoundaryConditions &boundary)
Definition: EulerUpstreamResidual_impl.hpp:391
void computeResidual(const std::vector< double > &saturation, const typename GridInterface::Vector &gravity, const FlowSolution &flow_sol, const Opm::SparseVector< double > &injection_rates, const bool method_viscous, const bool method_gravity, const bool method_capillary, std::vector< double > &sat_delta) const
const ReservoirProperties & reservoirProperties() const
Definition: EulerUpstreamResidual_impl.hpp:445
FIt::Vector Vector
Definition: EulerUpstreamResidual.hpp:66
GridInterface::CellIterator CIt
Definition: EulerUpstreamResidual.hpp:64
EulerUpstreamResidual(const GridInterface &grid, const ReservoirProperties &resprop, const BoundaryConditions &boundary)
const GridInterface & grid() const
Definition: EulerUpstreamResidual_impl.hpp:437
const BoundaryConditions & boundaryConditions() const
Definition: EulerUpstreamResidual_impl.hpp:452
void computeCapPressures(const std::vector< double > &saturation) const
Definition: EulerUpstreamResidual_impl.hpp:460
ReservoirProperties RP
Definition: EulerUpstreamResidual.hpp:67
CIt::FaceIterator FIt
Definition: EulerUpstreamResidual.hpp:65
Definition: BlackoilFluid.hpp:32
Definition: EulerUpstreamResidual_impl.hpp:79