adding a few fluid related members to StandardWells

to reduce the number of the public function arguments.
This commit is contained in:
Kai Bao 2016-04-28 16:20:18 +02:00
parent d1da78b5b2
commit 22b5157bf2
6 changed files with 34 additions and 8 deletions

View File

@ -276,7 +276,6 @@ namespace Opm {
const BlackoilPropsAdInterface& fluid_;
const DerivedGeology& geo_;
const RockCompressibility* rock_comp_props_;
WellModel std_wells_;
VFPProperties vfp_properties_;
const NewtonIterationBlackoilInterface& linsolver_;
// For each canonical phase -> true if active
@ -294,6 +293,10 @@ namespace Opm {
std::vector<ReservoirResidualQuant> rq_;
std::vector<PhasePresence> phaseCondition_;
// Well Model
WellModel std_wells_;
V isRs_;
V isRv_;
V isSg_;

View File

@ -162,7 +162,6 @@ namespace detail {
, fluid_ (fluid)
, geo_ (geo)
, rock_comp_props_(rock_comp_props)
, std_wells_ (wells_arg)
, vfp_properties_(
eclState->getTableManager().getVFPInjTables(),
eclState->getTableManager().getVFPProdTables())
@ -177,6 +176,7 @@ namespace detail {
, use_threshold_pressure_(false)
, rq_ (fluid.numPhases())
, phaseCondition_(AutoDiffGrid::numCells(grid))
, std_wells_ (wells_arg, fluid_, active_, phaseCondition_)
, isRs_(V::Zero(AutoDiffGrid::numCells(grid)))
, isRv_(V::Zero(AutoDiffGrid::numCells(grid)))
, isSg_(V::Zero(AutoDiffGrid::numCells(grid)))

View File

@ -60,7 +60,14 @@ namespace Opm {
Eigen::Dynamic,
Eigen::RowMajor>;
// --------- Public methods ---------
explicit StandardWells(const Wells* wells);
StandardWells(const Wells* wells_arg,
const BlackoilPropsAdInterface& fluid_arg,
const std::vector<bool>& active_arg,
const std::vector<PhasePresence>& pc_arg);
const WellOps& wellOps() const;
int numPhases() const { return num_phases_; };
const Wells& wells() const;
@ -70,7 +77,6 @@ namespace Opm {
/// return true if wells are available on this process
bool localWellsActive() const;
const WellOps& wellOps() const;
/// Density of each well perforation
Vector& wellPerforationDensities(); // mutable version kept for BlackoilMultisegmentModel
@ -197,6 +203,10 @@ namespace Opm {
bool wells_active_;
const Wells* wells_;
const WellOps wops_;
const int num_phases_;
const BlackoilPropsAdInterface& fluid_;
const std::vector<bool>& active_;
const std::vector<PhasePresence>& phase_condition_;
Vector well_perforation_densities_;
Vector well_perforation_pressure_diffs_;
};

View File

@ -37,7 +37,10 @@ namespace Opm {
using Base::computeWellConnectionDensitesPressures;
// --------- Public methods ---------
explicit StandardWellsSolvent(const Wells* wells);
StandardWellsSolvent(const Wells* wells_arg,
const BlackoilPropsAdInterface& fluid_arg,
const std::vector<bool>& active_arg,
const std::vector<PhasePresence>& pc_arg);
// added the Solvent related
void initSolvent(const SolventPropsAdFromDeck* solvent_props,

View File

@ -32,8 +32,11 @@ namespace Opm
StandardWellsSolvent::StandardWellsSolvent(const Wells* wells_arg)
: Base(wells_arg)
StandardWellsSolvent::StandardWellsSolvent(const Wells* wells_arg,
const BlackoilPropsAdInterface& fluid_arg,
const std::vector<bool>& active_arg,
const std::vector<PhasePresence>& pc_arg)
: Base(wells_arg, fluid_arg, active_arg, pc_arg)
, solvent_props_(nullptr)
, solvent_pos_(-1)
, has_solvent_(false)

View File

@ -71,9 +71,16 @@ namespace Opm
StandardWells::StandardWells(const Wells* wells_arg)
StandardWells::StandardWells(const Wells* wells_arg,
const BlackoilPropsAdInterface& fluid_arg,
const std::vector<bool>& active_arg,
const std::vector<PhasePresence>& pc_arg)
: wells_(wells_arg)
, wops_(wells_arg)
, num_phases_(wells_arg->number_of_phases)
, fluid_(fluid_arg)
, active_(active_arg)
, phase_condition_(pc_arg)
, well_perforation_densities_(Vector())
, well_perforation_pressure_diffs_(Vector())
{