12 #ifndef __WELLGROUP_HEADER__
13 #define __WELLGROUP_HEADER__
34 OCP_BOOL IfReInj()
const {
return reInj; }
54 vector<OCP_DBL> reInjZi;
100 void Setup(
const Grid& myGrid,
const Bulk& myBulk);
102 void SetupWell(
const Grid& myGrid,
const Bulk& myBulk);
104 void SetupWellGroup(
const Bulk& myBulk);
106 void SetupMixture(
const Bulk& myBulk);
108 void SetupWellBulk(
Bulk& myBulk)
const;
110 void SetupConnWell2Bulk(
const Bulk& myBulk);
118 void ApplyControl(
const USI& i);
120 void InitBHP(
const Bulk& myBulk);
122 void PrepareWell(
const Bulk& myBulk);
124 void CalTrans(
const Bulk& myBulk);
126 void CalFlux(
const Bulk& myBulk);
128 void CaldG(
const Bulk& myBulk);
132 void CalReInjFluid(
const Bulk& myBulk);
133 void UpdateLastTimeStepBHP()
135 for (
auto& w : wells) w.lbhp = w.bhp;
145 USI GetIndex(
const string& name)
const;
149 USI GetWellPerfNum()
const;
151 USI GetMaxWellPerNum()
const;
152 void CalMaxBHPChange();
153 OCP_DBL GetdBHPmax()
const {
return dPmax; }
158 if (wells[w].IsOpen())
165 void ShowWellStatus(
const Bulk& myBulk)
167 for (
USI w = 0; w < numWell; w++) wells[w].ShowPerfStatus(myBulk);
169 OCP_BOOL GetWellChange()
const {
return wellChange; }
170 const auto& GetWell2Bulk()
const {
return well2bulk; }
249 vector<OCPpolyhedron> polyhedronWell;
252 mutable vector<OCP_DBL> wellVal;
255 void SetPolyhedronWell(
const Grid& myGrid);
256 void SetWellVal()
const;
unsigned int USI
Generic unsigned integer.
double OCP_DBL
Double precision.
const OCP_DBL TEMPERATURE_STD
Standard temperature: F.
unsigned int OCP_BOOL
OCP_BOOL in OCP.
const OCP_DBL PRESSURE_STD
14.6959 psia = 1 atm
ParamWell class declaration.
OCP_DBL GetWGIR(const USI &w) const
Return gas injection rate of the wth well.
vector< vector< OCP_USI > > well2bulk
connections between wells and bulks
vector< Well > wells
well set.
vector< SolventINJ > solvents
Sets of Solvent.
OCP_DBL GetWGIT(const USI &w) const
Return total gas injection of the wth well.
OCP_DBL GetWellDG(const USI &w, const USI &p) const
Return the pth dG of wth well.
OCP_DBL GetFWPT() const
Return total water production in field.
OCP_DBL GetFWIR() const
Return water injection rate in field.
OCP_DBL GetFGPT() const
Return total gas production in field.
OCP_DBL GetWWIR(const USI &w) const
Return water injection rate of the wth well.
OCP_DBL GetWWPR(const USI &w) const
Return water production rate of the wth well.
OCP_DBL GetWWIT(const USI &w) const
Return total water injection of the wth well.
OCP_DBL GetWGPR(const USI &w) const
Return gas production rate of the wth well.
string GetWellName(const USI &i) const
Return the name of specified well.
OCP_DBL GetFWPR() const
Return water production rate in field.
vector< WellGroup > wellGroup
wellGroup set
OCP_DBL GetWBHP(const USI &w) const
Return the BHP of wth well.
OCP_BOOL wellChange
if wells change, then OCP_TRUE
OCP_DBL GetFWIT() const
Return total water injection in field.
OCP_DBL GetFGIT() const
Return gas water injection in field.
OCP_DBL GetWOPT(const USI &w) const
Return total oil production of the wth well.
OCP_DBL GetFOPT() const
Return total oil production in field.
OCP_DBL GetWGPT(const USI &w) const
Return total gas production of the wth well.
OCP_DBL GetWWPT(const USI &w) const
Return total water production of the wth well.
USI GetWellPerfNum(const USI &i) const
Return the num of perforations of well i.
OCP_DBL GetWOPR(const USI &w) const
Return oil production rate of the wth well.
USI numGroup
num of groups
OCP_DBL GetFGPR() const
Return gas production rate in field.
USI GetWellNum() const
Return the num of wells.
vector< Mixture * > flashCal
Useless now.
OCP_DBL GetFGIR() const
Return gas injection rate in field.
OCP_DBL GetFOPR() const
Return oil production rate in field.
Physical information of each active reservoir bulk.
IsoT_FIM is FIM (Fully Implicit Method).
IsoT_IMPEC is IMPEC (implicit pressure explict saturation) method.
Collect more detailed information of each time step.