HydroFemPhysics
The GeMA Hydraulic FEM Physics Plugin
Loading...
Searching...
No Matches
GmpHydraulicMaterialTwoPhase Class Reference
Inheritance diagram for GmpHydraulicMaterialTwoPhase:
Collaboration diagram for GmpHydraulicMaterialTwoPhase:

Public Types

enum  twoPhaseRelationships {
  BrooksCorey , vanGenuchten , UMAT , Liakopoulos ,
  NUM_TWOPHASEREL_IDS
}
 IDs for the two-phase flow relationships. More...
 
enum  fluidDensityModel {
  constant , exponential , linear , idealGas ,
  superCriticalCO2 , NUM_FLUIDDENSITY_IDS
}
 IDs for the two-phase flow relationships. More...
 

Public Member Functions

 GmpHydraulicMaterialTwoPhase (int typeIndex, QString typeName, const GmLogCategory &logger)
 Constructor. Gets as parameters the material index and its name.
 
virtual const QVariantMap * materialMetaDataMap ()
 Returns a pointer to the material attribute map, built when the function is called for the first time.
 
bool checkLoadedData (const GmElement *e) const
 
virtual void hydraulicConstitutiveModel (const GmElement *e, const GmVector *coord, int ip, GmMatrix &Kw, GmMatrix &Kc, double Sw, const GmpHydraulic::HMaterialPointAccessors &mp, int d) const
 Brief Returns the hydraulic constitutive model (permeability tensor)
 
virtual void permeabilityStiffness (const GmElement *e, const GmVector *coord, int ip, GmMatrix &K) const
 Returns the permeability stiffness matrix.
 
virtual double liquidDensity (const GmElement *e, const GmVector *coord, int ip, const double Plref=0.0, double Pl=0.0) const
 Returns the liquid fluid density.
 
virtual double liquidDensityPressureCompressibility (const GmElement *e, const GmVector *coord, int ip, double rho) const
 Returns the derivative of the liquid fluid density wrt to the liquid pressure.
 
virtual double gasDensity (const GmElement *e, const GmVector *coord, int ip, const double Pgref=0.0, double Pg=0.0) const
 Returns the gas fluid density.
 
virtual double exponentialFluidDensity (const double rho0, const double K, const double P0, const double P) const
 Returns the liquid fluid density according to an exponential law.
 
virtual double exponentialFluidDensityCompressibility (const double rho, const double K) const
 Returns the liquid fluid density according to an exponential law.
 
virtual double linearFluidDensity (const double rho0, const double K, const double P0, const double P) const
 Returns the liquid fluid density according to a linear law.
 
virtual double linearFluidDensityCompressibility (const double rho0, const double K) const
 Return the compressibility of the fluid defined by a linear law.
 
virtual double gasDensityPressureCompressibility (const GmElement *e, const GmVector *coord, int ip, double rho) const
 Returns the derivative of the gas fluid density wrt to the gas pressure.
 
virtual double idealGasDensity (const GmElement *e, const GmVector *coord, int ip, double Pg) const
 Returns the density of an ideal gas.
 
virtual double idealGasCompressibility (const GmElement *e, const GmVector *coord, int ip) const
 Returns the compressibility of an ideal gas.
 
virtual double liquidSaturation (const GmElement *e, const GmVector *coord, int ip, double pc) const
 Returns the liquid saturation degree.
 
virtual double derivativeLiquidSaturation (const GmElement *e, const GmVector *coord, int ip, double Sl, double Pc=0.0) const
 Returns the dSl/dPc.
 
virtual double derivativeEffectiveSaturationDegree (const GmElement *e, const GmVector *coord, int ip) const
 Returns the derivative of the effective saturation degree wrt to the liquid saturation.
 
virtual double derivativeLiquidRelativePermeability (const GmElement *e, const GmVector *coord, int ip, double Sl) const
 Returns the derivative of the liquid phase relative permeability wrt to the liquid saturation.
 
virtual double derivativeGasRelativePermeability (const GmElement *e, const GmVector *coord, int ip, double Sl) const
 Returns the derivative of the gas phase relative permeability wrt to the liquid saturation.
 
virtual double effectiveSaturation (const GmElement *e, const GmVector *coord, int ip, double Sw) const
 Returns the effective degree of saturation.
 
virtual double liquidRelativePermeability (const GmElement *e, const GmVector *coord, int ip, double Sw) const
 Returns the liquid relative permeability.
 
virtual double gasRelativePermeability (const GmElement *e, const GmVector *coord, int ip, double Sw) const
 Returns the gas relative permeability.
 
virtual int saturationLawId (const GmElement *e, const GmVector *coord, int ip) const
 Returns the saturation law id.
 
virtual int liquidRelativePermeabilityId (const GmElement *e, const GmVector *coord, int ip) const
 Returns the liquid phase relative permeability id.
 
virtual int gasRelativePermeabilityId (const GmElement *e, const GmVector *coord, int ip) const
 Returns the gas phase relative permeability id.
 
virtual int liquidDensityModelId (const GmElement *e, const GmVector *coord, int ip) const
 Returns the liquid fluid density model id.
 
virtual int gasDensityModelId (const GmElement *e, const GmVector *coord, int ip) const
 Returns the gas fluid density model id.
 
virtual double intrinsicPermeability (const GmElement *e, const GmVector *coord, int ip) const
 Returns the intrinsic permeability.
 
virtual bool checkIntrinsicPermeability (const GmElement *e, const GmVector *coord, int ip) const
 Check if continuum elements have the intrinsic permeability defined.
 
virtual double porosity (const GmElement *e, const GmVector *coord, int ip) const
 Returns the material porosity.
 
virtual bool checkPorosity (const GmElement *e, const GmVector *coord, int ip) const
 Check if continuum elements have the porosity defined.
 
double universalGasConstant (const GmElement *e, const GmVector *coord, int ip) const
 Returns the Universal gas constant R.
 
virtual double temperature (const GmElement *e, const GmVector *coord, int ip) const
 Returns the Temperature from property table.
 
virtual double molarMassGas (const GmElement *e, const GmVector *coord, int ip) const
 Returns the material pore compressibility.
 
virtual double poreCompressibility (const GmElement *e, const GmVector *coord, int ip) const
 Returns the material pore compressibility.
 
virtual double liquidBulkModulus (const GmElement *e, const GmVector *coord, int ip) const
 Returns the water bulk modulus.
 
virtual double gasBulkModulus (const GmElement *e, const GmVector *coord, int ip) const
 Returns the bulk modulus of another fluid.
 
virtual double liquidReferencePressure (const GmElement *e, const GmVector *coord, int ip) const
 Return the liquid fluid reference pressure.
 
virtual double gasReferencePressure (const GmElement *e, const GmVector *coord, int ip) const
 Return the gas fluid reference pressure.
 
virtual double liquidViscosity (const GmElement *e, const GmVector *coord, int ip) const
 Returns the water dynamic viscosity.
 
virtual double gasViscosity (const GmElement *e, const GmVector *coord, int ip) const
 Returns the fluid dynamic viscosity.
 
virtual double liqReferenceDensity (const GmElement *e, const GmVector *coord, int ip) const
 Returns the liquid fluid density.
 
virtual double gasReferenceDensity (const GmElement *e, const GmVector *coord, int ip) const
 Returns the gas fluid density.
 
virtual double residualLiquidSaturation (const GmElement *e, const GmVector *coord, int ip) const
 Returns the value of the residual water saturation degree.
 
virtual double residualGasSaturation (const GmElement *e, const GmVector *coord, int ip) const
 Returns the value of the residual water saturation degree.
 
virtual double gasEntryPressure (const GmElement *e, const GmVector *coord, int ip) const
 Returns the value of the pressure associated with the gas-entry value.
 
virtual double liquidPermeabilityFittingParameter (const GmElement *e, const GmVector *coord, int ip) const
 Returns the shape of the curve Krl x Sl.
 
virtual double gasPermeabilityFittingParameter (const GmElement *e, const GmVector *coord, int ip) const
 Returns the shape of the curve Krg x Sl.
 
virtual double saturationFittingParameter (const GmElement *e, const GmVector *coord, int ip) const
 Returns the shape of the curve Sw x pc.
 
virtual double minimumRelativePermeability (const GmElement *e, const GmVector *coord, int ip) const
 Returns the minimum relative permeability.
 

Static Public Member Functions

static GmpFemPhysicsCommonMaterial * instance (GmSimulationData *simulation, int typeIndex, QString typeName, const GmLogCategory &logger)
 A "factory" function used to register the material with the physics material factory.
 

Protected Types

enum  TwoPhasePropertyIds {
  K_ID , Pht_ID , Bp_ID , RPMIN_ID ,
  Kww_ID , Uw_ID , Rhow_ID , LAMBDAL_ID ,
  LRP_ID , SLR_ID , KRLCURVE_ID , LIQRHO_ID ,
  Kgg_ID , Ug_ID , Rhog_ID , LAMBDAG_ID ,
  GRP_ID , SGR_ID , KRGCURVE_ID , GASRHO_ID ,
  R_ID , T_ID , Mg_ID , Pd_ID ,
  LAMBDA_ID , SATLAW_ID , PCSLCURVE_ID , NUM_PROPERTY_IDS
}
 IDs for saturated material element properties. More...
 

Member Enumeration Documentation

◆ fluidDensityModel

IDs for the two-phase flow relationships.

Enumerator
NUM_FLUIDDENSITY_IDS 

The number of fluid density models.

◆ TwoPhasePropertyIds

IDs for saturated material element properties.

Enumerator
K_ID 

Id for retrieving the intrinsic permeability accessor.

Pht_ID 

Id for retrieving the porosity accessor.

Bp_ID 

Id for retrieving the pore compressibility accessor.

RPMIN_ID 

Id for retrieving the minimum relative permeability.

Kww_ID 

Id for retrieving the water bulk modulus accessor

Uw_ID 

Id for retrieving the water dynamic viscosity accessor

Rhow_ID 

Id for retrieving the water density accessor.

LAMBDAL_ID 

Id for retrieving the curve Krl x Sl fitting parameter.

LRP_ID 

Id for retrieving the liquid relative permeability id.

SLR_ID 

Id for retrieving the residual water saturation degree.

KRLCURVE_ID 

Id for retrieving the liquid relative permeability curve in the UMAT material.

LIQRHO_ID 

Id for retrieving the liquid density model.

Kgg_ID 

Id for retrieving the gas bulk modulus accessor.

Ug_ID 

Id for retrieving the gas dynamic viscosity accessor.

Rhog_ID 

Id for retrieving the gas density accessor.

LAMBDAG_ID 

Id for retrieving the curve Krg x Sl fitting parameter.

GRP_ID 

Id for retrieving the gas relative permeability id.

SGR_ID 

Id for retrieving the residual water saturation degree.

KRGCURVE_ID 

Id for retrieving the gas relative permeability curve in the UMAT material.

GASRHO_ID 

Id for retrieving the gas density model.

R_ID 

Id for retrieving the gas density accessor.

T_ID 

Id for retrieving the temperature accessor.

Mg_ID 

Id for retrieving the molar mass accessor.

Pd_ID 

Id for retrieving the pressure associated with the gas-entry value.

LAMBDA_ID 

Id for retrieving the curve Sl x pc fitting parameter.

SATLAW_ID 

Id for retrieving the saturation law id.

PCSLCURVE_ID 

Id for retrieving the saturation law curve in the UMAT material.

NUM_PROPERTY_IDS 

The number of property ids above.

◆ twoPhaseRelationships

IDs for the two-phase flow relationships.

Enumerator
NUM_TWOPHASEREL_IDS 

The number of two-phase flow relationships.

Member Function Documentation

◆ derivativeGasRelativePermeability()

double GmpHydraulicMaterialTwoPhase::derivativeGasRelativePermeability ( const GmElement * e,
const GmVector * coord,
int ip,
double Sl ) const
virtual

Returns the derivative of the gas phase relative permeability wrt to the liquid saturation.

Returns the derivative of the gas phase relative permeability wrt the liquid saturation.

◆ derivativeLiquidSaturation()

double GmpHydraulicMaterialTwoPhase::derivativeLiquidSaturation ( const GmElement * e,
const GmVector * coord,
int ip,
double Sl,
double Pc = 0.0 ) const
virtual

Returns the dSl/dPc.

Returns the derivative of the liquid saturation degree wrt to the capillary pressure.

◆ exponentialFluidDensityCompressibility()

double GmpHydraulicMaterialTwoPhase::exponentialFluidDensityCompressibility ( const double rho,
const double K ) const
virtual

Returns the liquid fluid density according to an exponential law.

Returns the liquid fluid density according to a linear law.

◆ gasDensityPressureCompressibility()

double GmpHydraulicMaterialTwoPhase::gasDensityPressureCompressibility ( const GmElement * e,
const GmVector * coord,
int ip,
double rho ) const
virtual

Returns the derivative of the gas fluid density wrt to the gas pressure.

Returns the derivative of the gas fluid compressibility with respect to the gas pressure: d rho_g /dP_g.

◆ gasRelativePermeability()

double GmpHydraulicMaterialTwoPhase::gasRelativePermeability ( const GmElement * e,
const GmVector * coord,
int ip,
double Sw ) const
virtual

Returns the gas relative permeability.

Returns the gas phase relative permeability.

◆ hydraulicConstitutiveModel()

void GmpHydraulicMaterialTwoPhase::hydraulicConstitutiveModel ( const GmElement * e,
const GmVector * coord,
int ip,
GmMatrix & Kw,
GmMatrix & Kc,
double Sw,
const GmpHydraulic::HMaterialPointAccessors & mp,
int d ) const
virtual

Brief Returns the hydraulic constitutive model (permeability tensor)

Returns the hydraulic conductivities Kl and Kg.

◆ idealGasCompressibility()

double GmpHydraulicMaterialTwoPhase::idealGasCompressibility ( const GmElement * e,
const GmVector * coord,
int ip ) const
virtual

Returns the compressibility of an ideal gas.

Returns the gas fluid compressibility ideal gas behavior.

◆ idealGasDensity()

double GmpHydraulicMaterialTwoPhase::idealGasDensity ( const GmElement * e,
const GmVector * coord,
int ip,
double Pg ) const
virtual

Returns the density of an ideal gas.

Returns the gas fluid density assuming ideal gas behavior.

◆ linearFluidDensityCompressibility()

double GmpHydraulicMaterialTwoPhase::linearFluidDensityCompressibility ( const double rho0,
const double K ) const
virtual

Return the compressibility of the fluid defined by a linear law.

Returns the liquid fluid density according to a linear law.

◆ liquidDensityPressureCompressibility()

double GmpHydraulicMaterialTwoPhase::liquidDensityPressureCompressibility ( const GmElement * e,
const GmVector * coord,
int ip,
double rho ) const
virtual

Returns the derivative of the liquid fluid density wrt to the liquid pressure.

Returns the derivative of the liquid fluid compressibility with respect to the liquid pressure: d rho_l /dP_l.

◆ liquidRelativePermeability()

double GmpHydraulicMaterialTwoPhase::liquidRelativePermeability ( const GmElement * e,
const GmVector * coord,
int ip,
double Sw ) const
virtual

Returns the liquid relative permeability.

Returns the liquid phase relative permeability.

◆ materialMetaDataMap()

const QVariantMap * GmpHydraulicMaterialTwoPhase::materialMetaDataMap ( )
virtual

Returns a pointer to the material attribute map, built when the function is called for the first time.

Reimplemented in GmpMaterialInterfaceMultiPhaseFlow.

◆ permeabilityStiffness()

void GmpHydraulicMaterialTwoPhase::permeabilityStiffness ( const GmElement * e,
const GmVector * coord,
int ip,
GmMatrix & K ) const
virtual

Returns the permeability stiffness matrix.

Returns the intrinsic permeability matrix K.


The documentation for this class was generated from the following files: