20 #ifndef SOLVENTPROPSADFROMDECK_HPP
21 #define SOLVENTPROPSADFROMDECK_HPP
23 #include <opm/autodiff/BlackoilPropsAdFromDeck.hpp>
24 #include <opm/autodiff/AutoDiffBlock.hpp>
26 #include <opm/core/utility/NonuniformTableLinear.hpp>
28 #include <opm/parser/eclipse/Deck/Deck.hpp>
29 #include <opm/parser/eclipse/EclipseState/EclipseState.hpp>
33 #include <opm/common/ErrorMacros.hpp>
41 const EclipseState& eclipseState,
42 const int number_of_cells,
43 const int* global_cell);
51 typedef std::vector<int> Cells;
58 const Cells& cells)
const;
65 const Cells& cells)
const;
72 const Cells& cells)
const;
79 const Cells& cells)
const;
86 const Cells& cells)
const;
94 const Cells& cells)
const;
101 const Cells& cells)
const;
108 const Cells& cells)
const;
115 const Cells& cells)
const;
122 const Cells& cells)
const;
129 const Cells& cells)
const;
151 const Cells& cells)
const;
160 ADB makeADBfromTables(
const ADB& X,
162 const std::vector<int>& regionIdx,
163 const std::vector<NonuniformTableLinear<double>>& tables)
const;
172 void extractTableIndex(
const std::string& keyword,
173 const Opm::EclipseState& eclState,
174 size_t numCompressed,
175 const int* compressedToCartesianCellIdx,
176 std::vector<int>& tableIdx)
const;
179 std::vector<int> cellPvtRegionIdx_;
180 std::vector<int> cellMiscRegionIdx_;
181 std::vector<int> cellSatNumRegionIdx_;
182 std::vector<NonuniformTableLinear<double> > b_;
183 std::vector<NonuniformTableLinear<double> > viscosity_;
184 std::vector<NonuniformTableLinear<double> > inverseBmu_;
185 std::vector<double> solvent_surface_densities_;
186 std::vector<NonuniformTableLinear<double> > krg_;
187 std::vector<NonuniformTableLinear<double> > krs_;
188 std::vector<NonuniformTableLinear<double> > krn_;
189 std::vector<NonuniformTableLinear<double> > mkro_;
190 std::vector<NonuniformTableLinear<double> > mkrsg_;
191 std::vector<NonuniformTableLinear<double> > misc_;
192 std::vector<NonuniformTableLinear<double> > pmisc_;
193 std::vector<NonuniformTableLinear<double> > sorwmis_;
194 std::vector<NonuniformTableLinear<double> > sgcwmis_;
195 std::vector<NonuniformTableLinear<double> > tlpmix_param_;
196 std::vector<double> mix_param_viscosity_;
197 std::vector<double> mix_param_density_;
202 #endif // SOLVENTPROPSADFROMDECK_HPP
ADB miscibleCriticalGasSaturationFunction(const ADB &Sw, const Cells &cells) const
Miscible critical gas saturation function.
Definition: SolventPropsAdFromDeck.cpp:404
ADB pressureMiscibilityFunction(const ADB &po, const Cells &cells) const
Pressure dependent miscibility function.
Definition: SolventPropsAdFromDeck.cpp:393
V solventSurfaceDensity(const Cells &cells) const
Solvent surface density.
Definition: SolventPropsAdFromDeck.cpp:447
ADB muSolvent(const ADB &pg, const Cells &cells) const
Solvent viscosity.
Definition: SolventPropsAdFromDeck.cpp:313
ADB miscibleResidualOilSaturationFunction(const ADB &Sw, const Cells &cells) const
Miscible residual oil saturation function.
Definition: SolventPropsAdFromDeck.cpp:414
ADB pressureMixingParameter(const ADB &po, const Cells &cells) const
Todd-Longstaff pressure dependent mixing parameter.
Definition: SolventPropsAdFromDeck.cpp:485
V mixingParameterDensity(const Cells &cells) const
Todd-Longstaff mixing parameter for density calculation.
Definition: SolventPropsAdFromDeck.cpp:471
ADB miscibilityFunction(const ADB &solventFraction, const Cells &cells) const
Miscible function.
Definition: SolventPropsAdFromDeck.cpp:386
ADB bSolvent(const ADB &pg, const Cells &cells) const
Solvent formation volume factor.
Definition: SolventPropsAdFromDeck.cpp:339
ADB gasRelPermMultiplier(const ADB &solventFraction, const Cells &cells) const
Gas relPerm multipliers.
Definition: SolventPropsAdFromDeck.cpp:346
ADB misicibleHydrocarbonWaterRelPerm(const ADB &Sn, const Cells &cells) const
Miscible hydrocrabon relPerm wrt water.
Definition: SolventPropsAdFromDeck.cpp:360
ADB solventRelPermMultiplier(const ADB &solventFraction, const Cells &cells) const
Solvent relPerm multipliers.
Definition: SolventPropsAdFromDeck.cpp:353
Definition: SolventPropsAdFromDeck.hpp:37
Eigen::Array< double, Eigen::Dynamic, 1 > V
Underlying type for values.
Definition: AutoDiffBlock.hpp:99
ADB miscibleOilRelPermMultiplier(const ADB &So, const Cells &cells) const
Miscible Oil relPerm multiplier.
Definition: SolventPropsAdFromDeck.cpp:376
V mixingParameterViscosity(const Cells &cells) const
Todd-Longstaff mixing parameter for viscosity calculation.
Definition: SolventPropsAdFromDeck.cpp:457
ADB miscibleSolventGasRelPermMultiplier(const ADB &Ssg, const Cells &cells) const
Miscible Solvent + Gas relPerm multiplier.
Definition: SolventPropsAdFromDeck.cpp:366