12 #ifndef __WELL_HEADER__
13 #define __WELL_HEADER__
38 data = other.comRatio;
62 bool operator !=(
const WellOpt& Opt)
const;
120 void Setup(
const Grid& myGrid,
const Bulk& myBulk,
const vector<SolventINJ>& sols);
122 void InitBHP(
const Bulk& myBulk);
124 void CalWI_Peaceman_Vertical(
const Bulk& myBulk);
126 void CalTrans(
const Bulk& myBulk);
128 void CalFlux(
const Bulk& myBulk,
const bool flag =
false);
130 OCP_DBL CalInjRate(
const Bulk& myBulk,
const bool& maxBHP);
132 OCP_DBL CalProdRate(
const Bulk& myBulk,
const bool& minBHP);
134 void CalInjQi(
const Bulk& myBulk,
const OCP_DBL& dt);
136 void CalProdQj(
const Bulk& myBulk,
const OCP_DBL& dt);
138 void CalProdQjCOMP(
const Bulk& myBulk);
141 void CalProdQiBO(
const Bulk& myBulk);
143 void CaldG(
const Bulk& myBulk);
145 void CalInjdG(
const Bulk& myBulk);
147 void CalProddG(
const Bulk& myBulk);
149 void CalProdWeight(
const Bulk& myBulk)
const;
151 void CalReInjFluid(
const Bulk& myBulk, vector<OCP_DBL>& myZi);
157 void CheckOptMode(
const Bulk& myBulk);
165 for (
USI p = 0; p < numPerf; p++) perf[p].P = BHP + dG[p];
170 void SetupWellBulk(
Bulk& myBulk)
const;
178 void ShowPerfStatus(
const Bulk& myBulk)
const;
188 vector<WellOpt> optSet;
194 vector<Perforation> perf;
201 vector<OCP_DBL> qi_lbmol;
205 mutable vector<OCP_DBL> factor;
206 mutable vector<OCP_DBL> prodWeight;
225 void CalCFL(
const Bulk& myBulk,
const OCP_DBL& dt)
const;
227 void MassConserveIMPEC(
Bulk& myBulk,
const OCP_DBL& dt)
const;
237 const OCP_DBL& dt,
const vector<Well>& allWell,
const vector<USI>& injId)
const;
254 const OCP_DBL& dt,
const vector<Well>& allWell,
const vector<USI>& injId)
const;
257 const OCP_USI& wId,
const vector<Well>& allWell)
const;
258 void ShowRes(
const OCP_USI& wId,
const vector<OCP_DBL>& res,
const Bulk& myBulk)
const;
289 const OCP_USI& wId,
const vector<Well>& allWell)
const;
Operations about small dense mat.
Linear solver class declaration.
Definition of build-in datatypes and consts.
unsigned int USI
Generic unsigned integer.
double OCP_DBL
Double precision.
unsigned int OCP_USI
Long unsigned integer.
Some Structure in OpenCAEPoro.
ParamWell class declaration.
WellPerf class declaration.
Physical information of each active reservoir bulk.
Collect more detailed information of each time step.
Basic information of computational grid, including the rock properties.
Linear solvers for discrete systems.
Describe the molar fraction of components of fluid injected to reservoir from INJ.
string name
name of solvens
vector< OCP_DBL > data
molar fraction of components
Describe the molar fraction of components of fluid injected to reservoir from INJ.
WellOpt()=default
Default constructor.
void UpdatePerfP()
Update pressure in Perforation after well pressure updates.
OCP_DBL GetPerfPre(const USI &p) const
Return Pressure of Perf p.
bool WellState() const
Return the state of the well, Open or Close.
USI WellType() const
Return the type of well, Inj or Prod.