00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef OPM_STANDARDWELLSSOLVENT_HEADER_INCLUDED
00023 #define OPM_STANDARDWELLSSOLVENT_HEADER_INCLUDED
00024
00025 #include <opm/autodiff/StandardWells.hpp>
00026 #include <opm/autodiff/SolventPropsAdFromDeck.hpp>
00027
00028 namespace Opm {
00029
00030
00032 class StandardWellsSolvent : public StandardWells
00033 {
00034 public:
00035
00036 using Base = StandardWells;
00037 using Base::computeWellConnectionDensitesPressures;
00038
00039
00040 StandardWellsSolvent(const Wells* wells_arg, WellCollection* well_collection);
00041
00042
00043 void initSolvent(const SolventPropsAdFromDeck* solvent_props,
00044 const int solvent_pos,
00045 const bool has_solvent);
00046
00047 template <class SolutionState>
00048 void computeWellFlux(const SolutionState& state,
00049 const std::vector<ADB>& mob_perfcells,
00050 const std::vector<ADB>& b_perfcells,
00051 Vector& aliveWells,
00052 std::vector<ADB>& cq_s) const;
00053
00054 template <class SolutionState, class WellState>
00055 void computePropertiesForWellConnectionPressures(const SolutionState& state,
00056 const WellState& xw,
00057 std::vector<double>& b_perf,
00058 std::vector<double>& rsmax_perf,
00059 std::vector<double>& rvmax_perf,
00060 std::vector<double>& surf_dens_perf);
00061
00062
00063 template <class ReservoirResidualQuant, class SolutionState>
00064 void extractWellPerfProperties(const SolutionState& state,
00065 const std::vector<ReservoirResidualQuant>& rq,
00066 std::vector<ADB>& mob_perfcells,
00067 std::vector<ADB>& b_perfcells) const;
00068
00069 template <class SolutionState, class WellState>
00070 void computeWellConnectionPressures(const SolutionState& state,
00071 const WellState& xw);
00072
00073 protected:
00074 const SolventPropsAdFromDeck* solvent_props_;
00075 int solvent_pos_;
00076 bool has_solvent_;
00077
00078 using Base::phase_condition_;
00079
00080 };
00081
00082
00083 }
00084
00085 #include "StandardWellsSolvent_impl.hpp"
00086
00087 #endif