12 #ifndef __FLOWUNIT_HEADER__
13 #define __FLOWUNIT_HEADER__
41 virtual const vector<OCP_DBL>&
GetScm()
const = 0;
77 const vector<OCP_DBL>&
GetScm()
const override {}
111 const vector<OCP_DBL>&
GetScm()
const override {}
115 vector<OCP_DBL> data;
116 vector<OCP_DBL> cdata;
145 const vector<OCP_DBL>&
GetScm()
const override {}
149 vector<OCP_DBL> data;
150 vector<OCP_DBL> cdata;
168 const vector<OCP_DBL>&
GetScm()
const override {
return Scm; }
216 void Generate_SWPCWG();
243 surTenRef = rs_param.
miscstr.surTenRef[0];
246 surTenPc = rs_param.
miscstr.surTenRef[2] / surTenRef;
307 void Generate_SWPCWG();
313 vector<OCP_DBL> data;
314 vector<OCP_DBL> cdata;
Definition of build-in datatypes and consts.
unsigned int USI
Generic unsigned integer.
double OCP_DBL
Double precision.
OCPTable class declaration.
ParamReservoir class declaration.
#define OCP_ABORT(msg)
Abort if critical error happens.
void CalKrPcDeriv(const OCP_DBL *S_in, OCP_DBL *kr_out, OCP_DBL *pc_out, OCP_DBL *dkrdS, OCP_DBL *dPcjdS, const OCP_DBL &MySurTen, OCP_DBL &MyFk, OCP_DBL &MyFp) override
Calculate derivatives of relative permeability and capillary pressure.
void CalKrPc(const OCP_DBL *S_in, OCP_DBL *kr_out, OCP_DBL *pc_out, const OCP_DBL &MySurTen, OCP_DBL &MyFk, OCP_DBL &MyFp) override
Calculate relative permeability and capillary pressure.
OCP_DBL GetPcowBySw(const OCP_DBL &sw) override
Pcow = Po - Pw.
OCP_DBL GetSwByPcgw(const OCP_DBL &pcgw) override
Pcgw = Pg - Pw.
virtual void CalKrPcDeriv(const OCP_DBL *S_in, OCP_DBL *kr_out, OCP_DBL *pc_out, OCP_DBL *dkrdS, OCP_DBL *dPcjdS, const OCP_DBL &MySurTen, OCP_DBL &MyFk, OCP_DBL &MyFp) override
Calculate derivatives of relative permeability and capillary pressure.
OCPTable SGOF
saturation table about gas and oil.
vector< OCP_DBL > cdata
container to store the slopes of interpolation.
virtual void CalKrPc(const OCP_DBL *S_in, OCP_DBL *kr_out, OCP_DBL *pc_out, const OCP_DBL &MySurTen, OCP_DBL &MyFk, OCP_DBL &MyFp) override
Calculate relative permeability and capillary pressure.
OCP_DBL GetPcgoBySg(const OCP_DBL &sg) override
Pcgo = Pg - Po.
OCPTable SWOF
saturation table about water and oil.
vector< OCP_DBL > data
container to store the values of interpolation.
OCP_DBL GetPcgoBySg(const OCP_DBL &sg) override
Pcgo = Pg - Po.
OCP_DBL GetSwByPcgw(const OCP_DBL &pcgw) override
Pcgw = Pg - Pw.
void CalKrPcDeriv(const OCP_DBL *S_in, OCP_DBL *kr_out, OCP_DBL *pc_out, OCP_DBL *dkrdS, OCP_DBL *dPcjdS, const OCP_DBL &MySurTen, OCP_DBL &MyFk, OCP_DBL &MyFp) override
Calculate derivatives of relative permeability and capillary pressure.
OCP_DBL GetPcowBySw(const OCP_DBL &sw) override
Pcow = Po - Pw.
void CalKrPc(const OCP_DBL *S_in, OCP_DBL *kr_out, OCP_DBL *pc_out, const OCP_DBL &MySurTen, OCP_DBL &MyFk, OCP_DBL &MyFp) override
Calculate relative permeability and capillary pressure.
OCP_DBL kroMax
oil relative permeability in the presence of connate water only, used in stone2
vector< OCP_DBL > Scm
critical saturation when phase becomes mobile / immobile
OCP_DBL GetSwco() const override
Return the value of Swco.
OCP_DBL Swco
Saturation of connate water.
const vector< OCP_DBL > & GetScm() const override
Return the value of Scm.
void CalKrPc(const OCP_DBL *S_in, OCP_DBL *kr_out, OCP_DBL *pc_out, const OCP_DBL &MySurTen, OCP_DBL &MyFk, OCP_DBL &MyFp) override
Calculate relative permeability and capillary pressure.
OCP_DBL GetSwByPcgw(const OCP_DBL &pcgw) override
Pcgw = Pg - Pw.
OCP_DBL GetPcgoBySg(const OCP_DBL &sg) override
Pcgo = Pg - Po.
const vector< OCP_DBL > & GetScm() const override
Return the value of Scm.
void CalKrPcDeriv(const OCP_DBL *S_in, OCP_DBL *kr_out, OCP_DBL *pc_out, OCP_DBL *dkrdS, OCP_DBL *dPcjdS, const OCP_DBL &MySurTen, OCP_DBL &MyFk, OCP_DBL &MyFp) override
Calculate derivatives of relative permeability and capillary pressure.
OCP_DBL GetPcowBySw(const OCP_DBL &sw) override
Pcow = Po - Pw.
OCP_DBL GetSwco() const override
Return the value of Swco.
OCP_DBL GetSwByPcgw(const OCP_DBL &pcgw) override
Pcgw = Pg - Pw.
void CalKrPcDeriv(const OCP_DBL *S_in, OCP_DBL *kr_out, OCP_DBL *pc_out, OCP_DBL *dkrdS, OCP_DBL *dPcjdS, const OCP_DBL &MySurTen, OCP_DBL &MyFk, OCP_DBL &MyFp) override
Calculate derivatives of relative permeability and capillary pressure.
void CalKrPc(const OCP_DBL *S_in, OCP_DBL *kr_out, OCP_DBL *pc_out, const OCP_DBL &MySurTen, OCP_DBL &MyFk, OCP_DBL &MyFp) override
Calculate relative permeability and capillary pressure.
OCP_DBL GetPcgoBySg(const OCP_DBL &sg) override
Pcgo = Pg - Po.
OCP_DBL GetSwco() const override
Return the value of Swco.
OCP_DBL GetPcowBySw(const OCP_DBL &sw) override
Pcow = Po - Pw.
const vector< OCP_DBL > & GetScm() const override
Return the value of Scm.
const vector< OCP_DBL > & GetScm() const override
Return the value of Scm.
void CalKrPc(const OCP_DBL *S_in, OCP_DBL *kr_out, OCP_DBL *pc_out, const OCP_DBL &MySurTen, OCP_DBL &MyFk, OCP_DBL &MyFp) override
Calculate relative permeability and capillary pressure.
OCP_DBL GetSwByPcgw(const OCP_DBL &pcgw) override
Pcgw = Pg - Pw.
void CalKrPcDeriv(const OCP_DBL *S_in, OCP_DBL *kr_out, OCP_DBL *pc_out, OCP_DBL *dkrdS, OCP_DBL *dPcjdS, const OCP_DBL &MySurTen, OCP_DBL &MyFk, OCP_DBL &MyFp) override
Calculate derivatives of relative permeability and capillary pressure.
OCP_DBL GetPcgoBySg(const OCP_DBL &sg) override
Pcgo = Pg - Po.
OCP_DBL GetPcowBySw(const OCP_DBL &sw) override
Pcow = Po - Pw.
OCP_DBL GetSwco() const override
Return the value of Swco.
virtual OCP_DBL GetSwByPcgw(const OCP_DBL &pcgw)=0
Pcgw = Pg - Pw.
FlowUnit()=default
Default constructor.
virtual void CalKrPcDeriv(const OCP_DBL *S_in, OCP_DBL *kr_out, OCP_DBL *pc_out, OCP_DBL *dkrdS, OCP_DBL *dPcjdS, const OCP_DBL &MySurTen, OCP_DBL &MyFk, OCP_DBL &MyFp)=0
Calculate derivatives of relative permeability and capillary pressure.
virtual OCP_DBL GetPcgoBySg(const OCP_DBL &sg)=0
Pcgo = Pg - Po.
virtual const vector< OCP_DBL > & GetScm() const =0
Return the value of Scm.
virtual OCP_DBL GetSwco() const =0
Return the value of Swco.
virtual void CalKrPc(const OCP_DBL *S_in, OCP_DBL *kr_out, OCP_DBL *pc_out, const OCP_DBL &MySurTen, OCP_DBL &MyFk, OCP_DBL &MyFp)=0
Calculate relative permeability and capillary pressure.
virtual OCP_DBL GetPcowBySw(const OCP_DBL &sw)=0
Pcow = Po - Pw.
OCP_DBL Eval_Inv(const USI &j, const OCP_DBL &val, const USI &destj)
OCP_DBL Eval(const USI &j, const OCP_DBL &val, const USI &destj)
Miscstr miscstr
reference Miscibility surface tension