9 #ifndef PZ_pzmultiphase_h 10 #define PZ_pzmultiphase_h 71 virtual void Print(std::ostream & out)
override;
73 virtual std::string
Name()
override {
return "TPZMultiphase"; }
192 void SetTScheme(REAL timegamma, REAL timetheta){ this->fTheta = timetheta; this->fGamma = timegamma;}
199 void SetYorN(
bool dummybool){ this->fYorN = dummybool;}
239 fKabsoluteMap = KabsoluteMap;
249 void Kro(REAL Sw, REAL &
Kro, REAL &dKroDSw);
255 void Krw(REAL Sw, REAL &
Krw, REAL &dKrwSo);
261 void SWaterstar(REAL &Swstar, REAL &Po, REAL &Sw);
267 void fWaterstar(REAL &fWstar, REAL Pw, REAL Sw, REAL &dfWstarDPw, REAL &dfWstarDSw);
273 void fOilstar(REAL &fOstar, REAL Pw, REAL Sw, REAL &dfOstarDPw, REAL &dfOstarDSw);
279 void fstar(REAL &fStar, REAL Pw, REAL Sw, REAL Gdotn, REAL &dfstarDPw, REAL &dfstarDSw);
285 void Porosity(REAL po, REAL &poros, REAL &dPorosDp);
315 void OilLabmda(REAL &
OilLabmda, REAL Po, REAL Sw, REAL &dOilLabmdaDPo, REAL &dOilLabmdaDSw);
327 void Labmda(REAL &
Labmda, REAL Pw, REAL Sw, REAL &dLabmdaDPw, REAL &dLabmdaDSw);
333 void fOil(REAL &
fOil, REAL Pw, REAL Sw, REAL &dfOilDPw, REAL &dfOilDSw);
339 void fWater(REAL &
fWater, REAL Pw, REAL Sw, REAL &dfWaterDPw, REAL &dfWaterDSw);
352 void Kro(BFadREAL Sw, BFadREAL &Kro);
358 void Krw(BFadREAL Sw, BFadREAL &Krw);
364 void Porosity(BFadREAL po, BFadREAL &poros);
370 void RhoOil(BFadREAL po, BFadREAL &RhoOil);
376 void RhoWater(BFadREAL pw, BFadREAL &RhoWater);
394 void OilLabmda(BFadREAL OilLabmda, BFadREAL Po, BFadREAL &Sw);
400 void WaterLabmda(BFadREAL WaterLabmda, BFadREAL Pw, BFadREAL &Sw);
407 void Labmda(BFadREAL Labmda, BFadREAL Pw, BFadREAL &Sw);
413 void fOil(BFadREAL fOil, BFadREAL Pw, BFadREAL &Sw);
420 void fWater(BFadREAL fWater, BFadREAL Pw, BFadREAL &Sw);
461 void LoadKMap(std::string MaptoRead);
465 virtual int ClassId()
const override;
Defines the interface which material objects need to implement for discontinuous Galerkin formulation...
virtual void Solution(TPZMaterialData &data, int var, TPZVec< STATE > &Solout)
Returns the solution associated with the var index based on the finite element approximation.
void OilLabmda(REAL &OilLabmda, REAL Po, REAL Sw, REAL &dOilLabmdaDPo, REAL &dOilLabmdaDSw)
Oil mobility. .
void Labmda(REAL &Labmda, REAL Pw, REAL Sw, REAL &dLabmdaDPw, REAL &dLabmdaDSw)
Bulk mobility. .
REAL fGamma
Parameter representing temporal scheme for conservation equation.
virtual void Contribute(TPZVec< TPZMaterialData > &datavec, REAL weight, TPZFMatrix< STATE > &ef) override
It computes a contribution to the stiffness matrix and load vector at one integration point to multip...
virtual int NStateVariables() const override
Returns the number of state variables associated with the material.
virtual std::string Name() override
Returns the name of the material.
clarg::argBool bc("-bc", "binary checkpoints", false)
void OilViscosity(REAL po, REAL &OilViscosity, REAL &dOilViscosityDpo)
Oil viscosity. .
REAL ff
Definition of constants.
REAL RhoWaterSC()
Water density on standard conditions - kg/m3.
virtual void FillDataRequirements(TPZVec< TPZMaterialData > &datavec) override
Fill material data parameter with necessary requirements for the Contribute method. Here, in base class, all requirements are considered as necessary. Each derived class may optimize performance by selecting only the necessary data.
EState
State: Stiffness or Mass Matrix Calculations.
void CapillaryPressure(REAL So, REAL &pc, REAL &DpcDSo)
Capilar pressure. .
void WaterLabmda(REAL &WaterLabmda, REAL Pw, REAL Sw, REAL &dWaterLabmdaDPw, REAL &dWaterLabmdaDSw)
Water mobility. .
void Kro(REAL Sw, REAL &Kro, REAL &dKroDSw)
Oil relative permeability. .
virtual int Dimension() const override
Returns the integrable dimension of the material.
void RhoOil(REAL po, REAL &RhoOil, REAL &dRhoOilDpo)
void fOil(REAL &fOil, REAL Pw, REAL Sw, REAL &dfOilDPw, REAL &dfOilDSw)
Fractional oil flux. .
STATE BiotAlpha()
Biot parameter Parameter. .
REAL fRhoref
density reference - kg/m3
TPZStack< TPZFMatrix< REAL > > fKabsoluteMap
K map.
void WaterViscosity(REAL po, REAL &WaterViscosity, REAL &dWaterViscosityDpo)
Water viscosity. .
virtual void ApplyUyD(TPZMaterialData &data, TPZVec< TPZMaterialData > &dataleft, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc)
void fstar(REAL &fStar, REAL Pw, REAL Sw, REAL Gdotn, REAL &dfstarDPw, REAL &dfstarDSw)
Fractional product upwind function, Gdotn > 0 means water decrease (dSw/dt < 0), Gdotn < 0 means wate...
This class implements a simple vector storage scheme for a templated class T. Utility.
REAL fQref
Pressure reference - Pa.
virtual void ApplySin(TPZMaterialData &data, TPZVec< TPZMaterialData > &dataleft, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc)
virtual int ClassId() const override
Unique identifier for serialization purposes.
int fDim
Problem dimension.
REAL fLref
Characteristic length - m.
virtual void ApplySout(TPZMaterialData &data, TPZVec< TPZMaterialData > &dataleft, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc)
void SetKreference(REAL &Kref)
Set permeability reference - m2.
void SetTimeStep(REAL timestep)
Defines simulation time step.
virtual void ApplySigmaN(TPZMaterialData &data, TPZVec< TPZMaterialData > &dataleft, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc)
STATE LameMu()
Lame Second Parameter. .
bool fYorN
Use or not K map.
void SetTime(REAL time)
Defines simulation time step.
virtual void Solution(TPZVec< TPZMaterialData > &datavec, int var, TPZVec< STATE > &Solout) override
Returns the solution associated with the var index based on the finite element approximation.
REAL fEtaref
viscosity reference - Pa s
virtual void Solution(TPZMaterialData &data, TPZVec< TPZMaterialData > &dataleftvec, TPZVec< TPZMaterialData > &datarightvec, int var, TPZVec< STATE > &Solout, TPZCompEl *Left, TPZCompEl *Right) override
Returns the solution associated with the var index based on the finite element approximation around o...
virtual void ApplyPN(TPZMaterialData &data, TPZVec< TPZMaterialData > &dataleft, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc)
virtual int VariableIndex(const std::string &name) override
This class defines the boundary condition for TPZMaterial objects.
REAL fPref
Pressure reference - Pa.
void fWater(REAL &fWater, REAL Pw, REAL Sw, REAL &dfWaterDPw, REAL &dfWaterDSw)
Fractional water flux. .
virtual void ContributeBCInterface(TPZMaterialData &data, TPZMaterialData &dataleft, REAL weight, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override
It computes a contribution to residual vector at one BC integration point.
void SetRhoSCreference(REAL &Densityref)
Set density reference - kg/m3.
Material to solve a 2d multiphase transport problem by multiphysics simulation.
REAL fDeltaT
Simulation time step.
void SetKMap(TPZStack< TPZFMatrix< REAL > > KabsoluteMap)
STATE Se()
//Se o 1/M coeficiente poroelastico de armazenamento a volume constante.
virtual void Print(std::ostream &out) override
Prints out the data associated with the material.
virtual void ApplyUxD(TPZMaterialData &data, TPZVec< TPZMaterialData > &dataleft, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc)
STATE LameLambdaU()
Undrained Lame First Parameter. .
void fOilstar(REAL &fOstar, REAL Pw, REAL Sw, REAL &dfOstarDPw, REAL &dfOstarDSw)
Fractional product function, oil decrease direction (dSw/dt > 0). .
void Porosity(REAL po, REAL &poros, REAL &dPorosDp)
Rock porosity. .
void fWaterstar(REAL &fWstar, REAL Pw, REAL Sw, REAL &dfWstarDPw, REAL &dfWstarDSw)
Fractional product function, water decrease direction (dSw/dt < 0). .
REAL fKref
Permeability reference - m2.
void SetTScheme(REAL timegamma, REAL timetheta)
Defines stemporal scheme.
TPZMultiphase & operator=(const TPZMultiphase ©)
virtual void ContributeInterface(TPZMaterialData &data, TPZMaterialData &dataleft, TPZMaterialData &dataright, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef) override
It computes a contribution to stiffness matrix and load vector at one integration point...
void SetQreference(REAL &Qref)
Set flux reference - Pa.
REAL RhoOilSC()
Oil density on standard conditions - kg/m3.
This class implements a stack object. Utility.
void Krw(REAL Sw, REAL &Krw, REAL &dKrwSo)
Water relative permeability. .
virtual void FillBoundaryConditionDataRequirement(int type, TPZVec< TPZMaterialData > &datavec) override
This method defines which parameters need to be initialized in order to compute the contribution of t...
void SetLreference(REAL &Lref)
Set characteristic length - m.
virtual void ContributeBC(TPZVec< TPZMaterialData > &datavec, REAL weight, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override
It computes a contribution to the stiffness matrix and load vector at one BC integration point to mul...
virtual void ApplyQnD(TPZMaterialData &data, TPZVec< TPZMaterialData > &dataleft, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc)
void LoadKMap(std::string MaptoRead)
Absolute permeability.
void K(TPZFMatrix< REAL > &Kab)
Absolute permeability.
Contains the TPZDiscontinuousGalerkin class which implements the interface for discontinuous Galerkin...
REAL fTheta
Parameter representing temporal scheme for transport equation.
REAL fTime
Simulation current time.
Defines the interface of a computational element. Computational Element.
virtual int NSolutionVariables(int var) override
Returns the number of variables associated with the variable indexed by var.
void SetEtaSCreference(REAL &Viscosityref)
Set viscosity reference - Pa s.
STATE LameLambda()
Lame First Parameter. .
void SWaterstar(REAL &Swstar, REAL &Po, REAL &Sw)
Water saturation maximum value of the fractional flow product function. .
TPZFMatrix< REAL > Gravity()
Gravity.
TPZFMatrix< REAL > Kinv(TPZFMatrix< REAL > &Kab)
Absolute permeability inverse.
void SetPreference(REAL &Pref)
Set pressure reference - Pa.
REAL fxi
Big number balance.
void SetXiBalance(REAL xi)
Defines simulation bc numeric balance.
void SetYorN(bool dummybool)
Defines simulation use a K map.
int fPlaneStress
plane stress condition
void RhoWater(REAL pw, REAL &RhoWater, REAL &dRhoWaterDpo)