20 #ifndef OPM_BLACKOILPROPERTIESFROMDECK_HEADER_INCLUDED
21 #define OPM_BLACKOILPROPERTIESFROMDECK_HEADER_INCLUDED
24 #include <opm/core/props/BlackoilPropertiesInterface.hpp>
25 #include <opm/core/props/rock/RockFromDeck.hpp>
26 #include <opm/core/props/satfunc/SaturationPropsFromDeck.hpp>
27 #include <opm/core/utility/parameters/ParameterGroup.hpp>
28 #include <opm/material/fluidsystems/blackoilpvt/OilPvtMultiplexer.hpp>
29 #include <opm/material/fluidsystems/blackoilpvt/GasPvtMultiplexer.hpp>
30 #include <opm/material/fluidsystems/blackoilpvt/WaterPvtMultiplexer.hpp>
32 #include <opm/parser/eclipse/Deck/Deck.hpp>
36 struct UnstructuredGrid;
54 const Opm::EclipseState& eclState,
55 const UnstructuredGrid& grid,
bool init_rock=
true );
69 const Opm::EclipseState& eclState,
70 const UnstructuredGrid& grid,
75 const Opm::EclipseState& eclState,
77 const int* global_cell,
82 const Opm::EclipseState& eclState,
84 const int* global_cell,
90 const Opm::EclipseState& eclState,
91 std::shared_ptr<MaterialLawManager> materialLawManager,
93 const int* global_cell,
113 {
return &cellPvtRegionIdx_[0]; }
116 virtual const double*
porosity()
const;
146 double* dmudp)
const;
159 virtual void matrix(
const int n,
176 virtual void density(
const int n,
194 virtual void relperm(
const int n,
198 double* dkrds)
const;
214 double* dpcds)
const;
238 const OilPvtMultiplexer<double>& oilPvt()
const
243 const GasPvtMultiplexer<double>& gasPvt()
const
248 const WaterPvtMultiplexer<double>& waterPvt()
const
254 int getTableIndex_(
const int* pvtTableIdx,
int cellIdx)
const
258 return pvtTableIdx[cellIdx];
261 void initSurfaceDensities_(
const Opm::Deck& deck);
263 void compute_B_(
const int n,
270 void compute_dBdp_(
const int n,
278 void compute_R_(
const int n,
285 void compute_dRdp_(
const int n,
293 void init(
const Opm::Deck& deck,
294 const Opm::EclipseState& eclState,
295 std::shared_ptr<MaterialLawManager> materialLawManager,
297 const int* global_cell,
298 const int* cart_dims,
301 void init(
const Opm::Deck& deck,
302 const Opm::EclipseState& eclState,
303 std::shared_ptr<MaterialLawManager> materialLawManager,
305 const int* global_cell,
306 const int* cart_dims,
307 const ParameterGroup& param,
311 PhaseUsage phaseUsage_;
312 std::vector<int> cellPvtRegionIdx_;
313 OilPvtMultiplexer<double> oilPvt_;
314 GasPvtMultiplexer<double> gasPvt_;
315 WaterPvtMultiplexer<double> waterPvt_;
316 std::shared_ptr<MaterialLawManager> materialLawManager_;
317 std::shared_ptr<SaturationPropsInterface> satprops_;
318 std::vector<double> surfaceDensities_;
319 mutable std::vector<double> B_;
320 mutable std::vector<double> dB_;
321 mutable std::vector<double> R_;
322 mutable std::vector<double> dR_;
329 #endif // OPM_BLACKOILPROPERTIESFROMDECK_HEADER_INCLUDED
virtual const double * porosity() const
Definition: BlackoilPropertiesFromDeck.cpp:200
BlackoilPropertiesFromDeck(const Opm::Deck &deck, const Opm::EclipseState &eclState, const UnstructuredGrid &grid, bool init_rock=true)
Initialize from deck and grid.
Definition: BlackoilPropertiesFromDeck.cpp:32
virtual void relperm(const int n, const double *s, const int *cells, double *kr, double *dkrds) const
Definition: BlackoilPropertiesFromDeck.cpp:730
virtual void capPress(const int n, const double *s, const int *cells, double *pc, double *dpcds) const
Definition: BlackoilPropertiesFromDeck.cpp:749
virtual int numCells() const
Definition: BlackoilPropertiesFromDeck.cpp:194
virtual void swatInitScaling(const int cell, const double pcow, double &swat)
Update capillary pressure scaling according to pressure diff.
Definition: BlackoilPropertiesFromDeck.cpp:779
virtual void satRange(const int n, const int *cells, double *smin, double *smax) const
Obtain the range of allowable saturation values.
Definition: BlackoilPropertiesFromDeck.cpp:766
virtual PhaseUsage phaseUsage() const
Definition: BlackoilPropertiesFromDeck.cpp:223
Concrete class implementing the blackoil property interface, reading all data and properties from ecl...
Definition: BlackoilPropertiesFromDeck.hpp:43
virtual int numDimensions() const
Definition: BlackoilPropertiesFromDeck.cpp:188
virtual const double * permeability() const
Definition: BlackoilPropertiesFromDeck.cpp:208
Abstract base class for blackoil fluid and reservoir properties.
Definition: BlackoilPropertiesInterface.hpp:37
Definition: BlackoilPhases.hpp:36
virtual ~BlackoilPropertiesFromDeck()
Destructor.
Definition: BlackoilPropertiesFromDeck.cpp:183
virtual void density(const int n, const double *A, const int *cells, double *rho) const
Densities of stock components at reservoir conditions.
Definition: BlackoilPropertiesFromDeck.cpp:665
virtual int numPhases() const
Definition: BlackoilPropertiesFromDeck.cpp:217
virtual void viscosity(const int n, const double *p, const double *T, const double *z, const int *cells, double *mu, double *dmudp) const
Definition: BlackoilPropertiesFromDeck.cpp:236
ParameterGroup is a class that is used to provide run-time parameters.
Definition: ParameterGroup.hpp:81
virtual const double * surfaceDensity(int cellIdx=0) const
Densities of stock components at surface conditions.
Definition: BlackoilPropertiesFromDeck.cpp:686
virtual const int * cellPvtRegionIndex() const
Return an array containing the PVT table index for each grid cell.
Definition: BlackoilPropertiesFromDeck.hpp:112
Definition: SaturationPropsFromDeck.hpp:43
virtual void matrix(const int n, const double *p, const double *T, const double *z, const int *cells, double *A, double *dAdp) const
Definition: BlackoilPropertiesFromDeck.cpp:302