mirror of
https://github.com/OPM/opm-simulators.git
synced 2024-12-18 21:43:27 -06:00
Made IncompTpfa receive wells-output-arguments
This commit is contained in:
parent
4150e4a184
commit
ee736d8071
@ -10,7 +10,8 @@ namespace Opm
|
||||
oil_max_rate_(-1.0),
|
||||
water_production_target_(-1.0),
|
||||
fluid_volume_max_rate_(-1.0),
|
||||
BHP_limit_(-1.0)
|
||||
BHP_limit_(-1.0),
|
||||
guide_rate_(-1.0)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -18,6 +18,11 @@ namespace Opm
|
||||
{
|
||||
NONE_P, RATE, WELL
|
||||
};
|
||||
|
||||
enum GuideRateType
|
||||
{
|
||||
OIL, RAT
|
||||
};
|
||||
|
||||
ProductionSpecification();
|
||||
|
||||
@ -30,6 +35,8 @@ namespace Opm
|
||||
double BHP_limit_;
|
||||
double gas_max_rate_;
|
||||
double liquid_max_rate_;
|
||||
double guide_rate_;
|
||||
GuideRateType guide_rate_type_;
|
||||
|
||||
};
|
||||
}
|
||||
|
@ -97,9 +97,7 @@ namespace Opm
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
WellsGroupInterface* WellNode::findGroup(std::string name_of_node)
|
||||
|
@ -527,6 +527,11 @@ namespace Opm
|
||||
// We know that getLeafNodes() is ordered the same way as they're indexed in w_
|
||||
node->setWellsPointer(w_, i);
|
||||
}
|
||||
|
||||
// Set the guide rates:
|
||||
if(deck.hasField("WCONPROD")) {
|
||||
WCONPROD wconprod = deck.getWCONPROD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -91,12 +91,18 @@ namespace Opm
|
||||
/// If null, noflow conditions are assumed.
|
||||
/// \param[out] pressure Will contain N cell-pressure values.
|
||||
/// \param[out] faceflux Will contain F signed face flux values.
|
||||
/// \param[out] well_bhp Will contain bhp values for each well passed
|
||||
/// in the constructor.
|
||||
/// \param[out] well_rate Will contain rate values for each well passed
|
||||
/// in the constructor.
|
||||
void IncompTpfa::solve(const std::vector<double>& totmob,
|
||||
const std::vector<double>& omega,
|
||||
const std::vector<double>& src,
|
||||
const FlowBoundaryConditions* bcs,
|
||||
std::vector<double>& pressure,
|
||||
std::vector<double>& faceflux)
|
||||
std::vector<double>& faceflux,
|
||||
std::vector<double>& well_bhp,
|
||||
std::vector<double>& well_rate)
|
||||
{
|
||||
UnstructuredGrid* gg = const_cast<UnstructuredGrid*>(&grid_);
|
||||
tpfa_eff_trans_compute(gg, &totmob[0], &htrans_[0], &trans_[0]);
|
||||
@ -150,6 +156,10 @@ namespace Opm
|
||||
/// \param[in] dt Timestep.
|
||||
/// \param[out] pressure Will contain N cell-pressure values.
|
||||
/// \param[out] faceflux Will contain F signed face flux values.
|
||||
/// \param[out] well_bhp Will contain bhp values for each well passed
|
||||
/// in the constructor
|
||||
/// \param[out] well_rate Will contain rate values for each well passed
|
||||
/// in the constructor
|
||||
void IncompTpfa::solve(const std::vector<double>& totmob,
|
||||
const std::vector<double>& omega,
|
||||
const std::vector<double>& src,
|
||||
@ -158,7 +168,9 @@ namespace Opm
|
||||
const std::vector<double>& rock_comp,
|
||||
const double dt,
|
||||
std::vector<double>& pressure,
|
||||
std::vector<double>& faceflux)
|
||||
std::vector<double>& faceflux,
|
||||
std::vector<double>& well_bhp,
|
||||
std::vector<double>& well_rate)
|
||||
{
|
||||
UnstructuredGrid* gg = const_cast<UnstructuredGrid*>(&grid_);
|
||||
tpfa_eff_trans_compute(gg, &totmob[0], &htrans_[0], &trans_[0]);
|
||||
|
@ -72,12 +72,18 @@ namespace Opm
|
||||
/// If null, noflow conditions are assumed.
|
||||
/// \param[out] pressure Will contain N cell-pressure values.
|
||||
/// \param[out] faceflux Will contain F signed face flux values.
|
||||
/// \param[out] well_bhp Will contain bhp values for each well passed
|
||||
/// in the constructor
|
||||
/// \param[out] well_rate Will contain rate values for each well passed
|
||||
/// in the constructor
|
||||
void solve(const std::vector<double>& totmob,
|
||||
const std::vector<double>& omega,
|
||||
const std::vector<double>& src,
|
||||
const FlowBoundaryConditions* bcs,
|
||||
std::vector<double>& pressure,
|
||||
std::vector<double>& faceflux);
|
||||
std::vector<double>& faceflux,
|
||||
std::vector<double>& well_bhp,
|
||||
std::vector<double>& well_rate);
|
||||
|
||||
/// Assemble and solve pressure system with rock compressibility (assumed constant per cell).
|
||||
/// \param[in] totmob Must contain N total mobility values (one per cell).
|
||||
@ -97,6 +103,10 @@ namespace Opm
|
||||
/// \param[in] dt Timestep.
|
||||
/// \param[out] pressure Will contain N cell-pressure values.
|
||||
/// \param[out] faceflux Will contain F signed face flux values.
|
||||
/// \param[out] well_bhp Will contain bhp values for each well passed
|
||||
/// in the constructor
|
||||
/// \param[out] well_rate Will contain rate values for each well passed
|
||||
/// in the constructor
|
||||
void solve(const std::vector<double>& totmob,
|
||||
const std::vector<double>& omega,
|
||||
const std::vector<double>& src,
|
||||
@ -105,7 +115,9 @@ namespace Opm
|
||||
const std::vector<double>& rock_comp,
|
||||
const double dt,
|
||||
std::vector<double>& pressure,
|
||||
std::vector<double>& faceflux);
|
||||
std::vector<double>& faceflux,
|
||||
std::vector<double>& well_bhp,
|
||||
std::vector<double>& well_rate);
|
||||
|
||||
/// Expose read-only reference to internal half-transmissibility.
|
||||
const ::std::vector<double>& getHalfTrans() const { return htrans_; }
|
||||
|
Loading…
Reference in New Issue
Block a user