PolymerPropsAd.hpp
Go to the documentation of this file.
1/*
2 Copyright 2014 SINTEF ICT, Applied Mathematics.
3 Copyright 2014 STATOIL ASA.
4
5 This file is part of the Open Porous Media project (OPM).
6
7 OPM is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 OPM is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with OPM. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#ifndef OPM_POLYMERPROPSAD_HEADED_INLCUDED
22#define OPM_POLYMERPROPSAD_HEADED_INLCUDED
23
24#include <cmath>
25#include <vector>
26#include <opm/autodiff/AutoDiffBlock.hpp>
27#include <opm/autodiff/AutoDiffHelpers.hpp>
29
30namespace Opm {
31
33 {
34 public:
36 double rockDensity() const;
37
39 double deadPoreVol() const;
40
42 double cMax() const;
43
45 const std::vector<double>& shearWaterVelocity() const;
46
48 const std::vector<double>& shearViscosityReductionFactor() const;
49
51 double plyshlogRefConc() const;
52
55
57 bool hasPlyshlogRefTemp() const;
58
60 double plyshlogRefSalinity() const;
61
63 double plyshlogRefTemp() const;
64
66 double shrate() const;
67
68 double viscMult(double c) const; // multipler interpolated from PLYVISC table
69
70 typedef AutoDiffBlock<double> ADB;
71 typedef ADB::V V;
72
73 V viscMult(const V& c) const;
76
78 PolymerPropsAd(const PolymerProperties& polymer_props);
79
82
86 V
87 effectiveInvWaterVisc(const V& c,const double* visc) const;
88
92 ADB
93 effectiveInvWaterVisc(const ADB& c,const double* visc) const;
94
97 V
99
102 ADB
104
109 V
110 adsorption(const V& c, const V& cmax_cells) const;
111
116 ADB
117 adsorption(const ADB& c, const ADB& cmax_cells) const;
118
124 V
125 effectiveRelPerm(const V& c, const V& cmax_cells, const V& relperm) const;
126
127
133 ADB
134 effectiveRelPerm(const ADB& c, const ADB& cmax_cells, const ADB& krw) const;
135
141 bool computeShearMultLog(std::vector<double>& water_vel, std::vector<double>& visc_mult, std::vector<double>& shear_mult) const;
142
143
144 private:
145 const PolymerProperties& polymer_props_;
146 };
147
148} //namespace Opm
149
150#endif// OPM_POLYMERPROPSAD_HEADED_INLCUDED
Definition: PolymerProperties.hpp:35
Definition: PolymerPropsAd.hpp:33
double deadPoreVol() const
V viscMult(const V &c) const
~PolymerPropsAd()
Destructor.
V polymerWaterVelocityRatio(const V &c) const
double viscMult(double c) const
PolymerPropsAd(const PolymerProperties &polymer_props)
Constructor wrapping a polymer props.
ADB effectiveInvWaterVisc(const ADB &c, const double *visc) const
V effectiveInvWaterVisc(const V &c, const double *visc) const
double cMax() const
const std::vector< double > & shearWaterVelocity() const
\ return The water velcoity or shear rate in the PLYSHLOG table
V effectiveRelPerm(const V &c, const V &cmax_cells, const V &relperm) const
V adsorption(const V &c, const V &cmax_cells) const
double plyshlogRefSalinity() const
\ return The reference salinity in PLYSHLOG keyword
ADB adsorption(const ADB &c, const ADB &cmax_cells) const
bool hasPlyshlogRefTemp() const
\ return The flag indicating if reference temperature is specified in PLYSHLOG keyword
bool computeShearMultLog(std::vector< double > &water_vel, std::vector< double > &visc_mult, std::vector< double > &shear_mult) const
ADB effectiveRelPerm(const ADB &c, const ADB &cmax_cells, const ADB &krw) const
AutoDiffBlock< double > ADB
Definition: PolymerPropsAd.hpp:70
double shrate() const
\ return the value of SHRATE
const std::vector< double > & shearViscosityReductionFactor() const
\ return The viscosity reducation factor in the PLYSHLOG table
double rockDensity() const
ADB polymerWaterVelocityRatio(const ADB &c) const
bool hasPlyshlogRefSalinity() const
\ return The flag indicating if reference salinity is specified in PLYSHLOG keyword
ADB::V V
Definition: PolymerPropsAd.hpp:71
double plyshlogRefTemp() const
\ return The reference temperature in PLYSHLOG keyword
double plyshlogRefConc() const
\ return The reference polymer concentration for PLYSHLOG table
Definition: CompressibleTpfaPolymer.hpp:33