12 #ifndef __MIXTUREBO_HEADER__
13 #define __MIXTUREBO_HEADER__
27 const OCP_USI& numBulk)
override{};
29 void InitFlashFIMn(
const OCP_DBL& Pin,
44 const vector<OCP_DBL>& prodPhase,
45 vector<OCP_DBL>& prodWeight)
override
47 prodWeight = prodPhase;
53 vector<OCP_DBL>& prodRate)
override
55 prodRate.assign(Niin, Niin +
numCom);
59 OCP_ABORT(
"Can not be used in Black Oil Model!");
64 OCP_ABORT(
"Should not be used in Black Oil mode!");
67 void OutMixtureIters()
const override{};
96 void InitFlashIMPEC(
const OCP_DBL& Pin,
106 void InitFlashFIM(
const OCP_DBL& Pin,
135 void FlashFIMn(
const OCP_DBL& Pin,
141 const USI* phaseExistin,
150 const USI& tarPhase)
override
159 const USI& tarPhase)
override
167 const vector<SolventINJ>& sols,
188 void InitFlashIMPEC(
const OCP_DBL& Pin,
195 void InitFlashFIM(
const OCP_DBL& Pin,
215 void FlashFIMn(
const OCP_DBL& Pin,
221 const USI* phaseExistin,
230 const USI& tarPhase)
override;
235 const USI& tarPhase)
override;
239 const vector<SolventINJ>& sols,
241 const OCP_DBL& Tsurf)
override;
246 vector<OCP_DBL> data;
248 vector<OCP_DBL> cdata;
263 void InitFlashIMPEC(
const OCP_DBL& Pin,
270 void InitFlashFIM(
const OCP_DBL& Pin,
290 void FlashFIMn(
const OCP_DBL& Pin,
296 const USI* phaseExistin,
305 const USI& tarPhase)
override;
310 const USI& tarPhase)
override;
314 const vector<SolventINJ>& sols,
316 const OCP_DBL& Tsurf)
override;
322 vector<OCP_DBL> data;
324 vector<OCP_DBL> cdata;
Mixture class declaration.
unsigned int USI
Generic unsigned integer.
double OCP_DBL
Double precision.
unsigned int OCP_USI
Long unsigned integer.
OCPTable class declaration.
#define OCP_ABORT(msg)
Abort if critical error happens.
void FlashFIM(const OCP_DBL &Pin, const OCP_DBL &Tin, const OCP_DBL *Niin, const OCP_DBL *Sjin, const USI &lastNP, const OCP_DBL *xijin, const OCP_USI &bId) override
Flash calculation with moles of components and Calculate the derivative.
OCP_DBL RhoPhase(const OCP_DBL &Pin, const OCP_DBL &Pbb, const OCP_DBL &Tin, const OCP_DBL *Ziin, const USI &tarPhase) override
return mass density of phase
void SetupWellOpt(WellOpt &opt, const vector< SolventINJ > &sols, const OCP_DBL &Psurf, const OCP_DBL &Tsurf) override
void FlashIMPEC(const OCP_DBL &Pin, const OCP_DBL &Tin, const OCP_DBL *Niin, const USI &lastNP, const OCP_DBL *xijin, const OCP_USI &bId) override
Flash calculation with moles of components.
OCP_DBL XiPhase(const OCP_DBL &Pin, const OCP_DBL &Tin, const OCP_DBL *Ziin, const USI &tarPhase) override
return mass density of phase
void Flash(const OCP_DBL &Pin, const OCP_DBL &Tin, const OCP_DBL *Niin) override
flash calculation with saturation of phases.
OCP_DBL RhoPhase(const OCP_DBL &Pin, const OCP_DBL &Pbb, const OCP_DBL &Tin, const OCP_DBL *Ziin, const USI &tarPhase) override
return mass density of phase
OCP_DBL XiPhase(const OCP_DBL &Pin, const OCP_DBL &Tin, const OCP_DBL *Ziin, const USI &tarPhase) override
return mass density of phase
void FlashFIM(const OCP_DBL &Pin, const OCP_DBL &Tin, const OCP_DBL *Niin, const OCP_DBL *Sjin, const USI &lastNP, const OCP_DBL *xijin, const OCP_USI &bId) override
Flash calculation with moles of components and Calculate the derivative.
void Flash(const OCP_DBL &Pin, const OCP_DBL &Tin, const OCP_DBL *Niin) override
flash calculation with saturation of phases.
void FlashIMPEC(const OCP_DBL &Pin, const OCP_DBL &Tin, const OCP_DBL *Niin, const USI &lastNP, const OCP_DBL *xijin, const OCP_USI &bId) override
Flash calculation with moles of components.
void SetupWellOpt(WellOpt &opt, const vector< SolventINJ > &sols, const OCP_DBL &Psurf, const OCP_DBL &Tsurf) override
void SetupWellOpt(WellOpt &opt, const vector< SolventINJ > &sols, const OCP_DBL &Psurf, const OCP_DBL &Tsurf) override
OCP_DBL RhoPhase(const OCP_DBL &Pin, const OCP_DBL &Pbb, const OCP_DBL &Tin, const OCP_DBL *Ziin, const USI &tarPhase) override
return mass density of phase
void Flash(const OCP_DBL &Pin, const OCP_DBL &Tin, const OCP_DBL *Niin) override
flash calculation with saturation of phases.
void FlashFIM(const OCP_DBL &Pin, const OCP_DBL &Tin, const OCP_DBL *Niin, const OCP_DBL *Sjin, const USI &lastNP, const OCP_DBL *xijin, const OCP_USI &bId) override
Flash calculation with moles of components and Calculate the derivative.
void FlashIMPEC(const OCP_DBL &Pin, const OCP_DBL &Tin, const OCP_DBL *Niin, const USI &lastNP, const OCP_DBL *xijin, const OCP_USI &bId) override
Flash calculation with moles of components.
OCP_DBL XiPhase(const OCP_DBL &Pin, const OCP_DBL &Tin, const OCP_DBL *Ziin, const USI &tarPhase) override
return mass density of phase
BOMixture is inherited class of Mixture, it's used for black oil model.
OCP_DBL std_RhoW
The density of water at surface conditions : lb/ft3.
void CalProdWeight(const OCP_DBL &Pin, const OCP_DBL &Tin, const OCP_DBL *Niin, const vector< OCP_DBL > &prodPhase, vector< OCP_DBL > &prodWeight) override
Calculate ProdWeight for PROD well.
OCP_DBL std_RhoG
The density of gas at surface conditions : lb/ft3.
OCP_DBL std_RhoO
< others.
void CalProdRate(const OCP_DBL &Pin, const OCP_DBL &Tin, const OCP_DBL *Niin, vector< OCP_DBL > &prodRate) override
Calculate Production rate for PROD well.
USI numCom
num of components.