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;
66 typedef typename FIt::Vector Vector;
67 typedef ReservoirProperties RP;
76 const ReservoirProperties& resprop,
77 const BoundaryConditions& boundary);
79 void initObj(
const GridInterface& grid,
80 const ReservoirProperties& resprop,
81 const BoundaryConditions& boundary);
84 template <
class FlowSolution>
85 void computeResidual(
const std::vector<double>& saturation,
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;
94 void computeCapPressures(
const std::vector<double>& saturation)
const;
96 const GridInterface& grid()
const;
97 const ReservoirProperties& reservoirProperties()
const;
98 const BoundaryConditions& boundaryConditions()
const;
103 typename GridInterface::Vector
104 estimateCapPressureGradient(
const FIt& f,
const FIt& nbf)
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_;
127 #include "EulerUpstreamResidual_impl.hpp" 130 #endif // OPENRS_EULERUPSTREAMRESIDUAL_HEADER Class for immiscible dead oil and dry gas.
Definition: applier.hpp:18
EulerUpstreamResidual()
Definition: EulerUpstreamResidual_impl.hpp:365
Class for doing simple transport by explicit Euler upstream method for general grid.
Definition: EulerUpstreamResidual.hpp:59
Definition: EulerUpstreamResidual.hpp:52