60 template <
class S,
class P>
62 typedef typename GridInterface::CellIterator CIt;
63 typedef typename CIt::FaceIterator FIt;
64 typedef typename FIt::Vector Vector;
65 typedef ReservoirProperties RP;
74 const ReservoirProperties& resprop,
75 const BoundaryConditions& boundary);
77 void initObj(
const GridInterface& grid,
78 const ReservoirProperties& resprop,
79 const BoundaryConditions& boundary);
82 template <
class FlowSolution>
83 void computeResidual(
const std::vector<double>& saturation,
84 const typename GridInterface::Vector& gravity,
85 const FlowSolution& flow_sol,
86 const Opm::SparseVector<double>& injection_rates,
87 const bool method_viscous,
88 const bool method_gravity,
89 const bool method_capillary,
90 std::vector<double>& sat_delta)
const;
92 void computeCapPressures(
const std::vector<double>& saturation)
const;
94 const GridInterface& grid()
const;
95 const ReservoirProperties& reservoirProperties()
const;
96 const BoundaryConditions& boundaryConditions()
const;
101 typename GridInterface::Vector
102 estimateCapPressureGradient(
const FIt& f,
const FIt& nbf)
const;
104 const GridInterface* pgrid_;
105 const ReservoirProperties* preservoir_properties_;
106 const BoundaryConditions* pboundary_;
110 std::vector<FIt> bid_to_face_;
113 std::vector<CIt> cell_iters_;
116 mutable std::vector<double> cap_pressures_;
117 mutable const Opm::SparseVector<double>* pinjection_rates_;
118 mutable bool method_viscous_;
119 mutable bool method_gravity_;
120 mutable bool method_capillary_;