CoupledHMFemPhysics
The GeMA Coupled Hydro-Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
GmpCoupledDualPorosityMaterial Class Reference

Basic class for a coupled hydro-mechanical material object, storing references for a mechanical and a hydro material, while also supporting coupling attributes. More...

#include <gmpCoupledDualPorosityMaterial.h>

Inheritance diagram for GmpCoupledDualPorosityMaterial:
Collaboration diagram for GmpCoupledDualPorosityMaterial:

Public Member Functions

 GmpCoupledDualPorosityMaterial (int typeIndex, QString typeName, const GmLogCategory &logger)
 Constructor. Gets as parameters the material index and its name.
 
virtual ~GmpCoupledDualPorosityMaterial ()
 Destructor.
 
virtual const QVariantMap * materialMetaDataMap ()
 Returns a pointer to the material attribute map, built when the function is called for the first time.
 
virtual double normalElasticStiffness (const GmElement *e, const GmVector *coord, int ip) const
 Returns the normal elastic stiffness of fracture.
 
virtual double shearElasticStiffness (const GmElement *e, const GmVector *coord, int ip) const
 Returns the shear elastic stiffness of fracture.
 
virtual double shearElasticStiffnessTwo (const GmElement *e, const GmVector *coord, int ip) const
 Returns the shear elastic stiffness 2 of fracture.
 
virtual closureModel fractureClosureModel (const GmElement *e, const GmVector *coord, int ip) const
 Returns the type of fracture closure model.
 
virtual bool fillElasticStiffnessMatrix (const GmElement *e, GmMatrix &Dmfr, GmMatrix &Cm, GmMatrix &Cfr, const GmVector *coord, int ip, const GmpMechanicPoint *mp, unsigned sc) const
 Returns the elastic constitutive matrix for an dual porosity dual permeability Dmfr = (Cm + Cfr) ^-1

 
virtual void updateElasticStiffnessMatrix (const GmElement *e, GmMatrix &Dmfr, GmMatrix &Cm, GmMatrix &Cfr, const GmpMechanicPoint *mp, const GmVector *coord, int ip, unsigned sc) const
 
virtual void penalty (const GmElement *e, GmVector &b, const GmVector *coord, int ip, const GmpMechanicPoint *mp, unsigned sc) const
 
virtual bool mechanicalConstitutiveModel (const GmElement *e, GmMatrix &Dmfr, GmMatrix &Cm, GmMatrix &Cfr, const GmpMechanicPoint *mp, const GmVector *coord, unsigned sc, unsigned ips) const
 Returns the mechanical constitutive model for fractured rock Dmfr.
 
virtual void tangentModulus (const GmElement *e, GmMatrix &Dmfr, GmMatrix &Cm, GmMatrix &Cfr, const GmpMechanicPoint *mp, const GmVector *coord, unsigned nc) const
 
virtual bool fillFluidFlowFracture (const GmElement *e, GmMatrix &Kfc, GmMatrix B, double c, int d, const GmpMechanicPoint *mp, const GmVector *coord, unsigned nc) const
 Returns the fracture fluid flow matrix.
 
virtual bool fillFractureStorageCompMatrix (const GmElement *e, GmpHydraulicDualFlow *hp, GmMatrix &Sfc, const GmVector &N, double c, int d, const GmpMechanicPoint *mp, const GmVector *coord, unsigned sc) const
 Evaluates the fracture storage compressibility matrix.
 
virtual bool fillTransferMatrix (const GmElement *e, GmpHydraulicDualFlow *hp, GmMatrix &Wfm, const GmVector &N, double c, int d, const GmpMechanicPoint *mp, const GmVector *coord, unsigned sc) const
 Evaluates the Transfer matrix considering the computed scalar "shape factor".
 
- Public Member Functions inherited from GmpCoupledHMMaterial
 GmpCoupledHMMaterial (int typeIndex, QString typeName, const GmLogCategory &logger)
 Constructor. Gets as parameters the material index and its name.
 
virtual ~GmpCoupledHMMaterial ()
 Destructor.
 
void setPhysicsMaterials (GmpFemPhysicsCommonMaterial *hydro, GmpFemPhysicsCommonMaterial *mechano)
 Sets the hydraulic and mechanical materials for this material. Materials CAN be NULL for a physics.
 
GmpHydraulicMaterial * hydro () const
 Returns the hydraulic material or NULL if none was configured.
 
GmpHydraulicMaterialTwoPhase * twoPhaseHydro () const
 Returns the Two-Phase hydraulic material or NULL if none was configured.
 
GmpMaterialInterfaceMultiPhaseFlow * twoPhaseInterfaceFlow () const
 Returns the Two-Phase hydraulic material or NULL if none was configured.
 
GmpMaterialInterfaceFlow * interfaceFlow () const
 Returns the hydraulic interface material or NULL if none was configured.
 
GmpMechanicalMaterial * mechanical () const
 Returns the mechancial material or NULL if none was configured or if the material is an interface material.
 
GmpInterfaceMaterial * interface () const
 Returns the mechancial interface material or NULL if none was configured or if the material is not an interface material.
 
GmGaussAccessor * getApertureAccessor () const
 Returns the current aperture accessor.
 
GmGaussAccessor * getOldApertureAccessor () const
 Returns the old aperture accessor.
 
QString flowMaterialTypeName () const
 Returns the flow material type name.
 
virtual void hydroMechanicalConstitutiveModel (const GmElement *e, const GmVector *coord, int ip, GmMatrix &Kper) const
 Fills the hydromechanical constitutive model.
 
virtual void updatePermeabilityPoroElastic (const GmElement *e, const GmVector *coord, int ip, GmMatrix &Kper) const
 Updates permeability tensor of poro elastic model.
 
virtual void updatePermeabilityEquivalentContinuum (const GmElement *e, const GmVector *coord, int ip, GmMatrix &Kper) const
 Updates permeability tensor of equivalent continuum model.
 

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.
 
- Static Public Member Functions inherited from GmpCoupledHMMaterial
static GmpFemPhysicsCommonMaterial * instance (int typeIndex, QString typeName, const GmLogCategory &logger)
 A "factory" function used to register the material with the physics material factory.
 

Protected Types

enum  DualPorosityElementPropertyIds { Knf_ID , Ksf_ID , Ktf_ID , Closure_ID }
 IDs for saturated material element properties. More...
 
enum  closureModel { normal , hardStiffness , bartonBandis }
 Fracture closure models. More...
 

Detailed Description

Basic class for a coupled hydro-mechanical material object, storing references for a mechanical and a hydro material, while also supporting coupling attributes.

Member Enumeration Documentation

◆ closureModel

Fracture closure models.

Enumerator
normal 

Normal closure without contact.

hardStiffness 

Fracture closure considering Hard Stiffness.

bartonBandis 

Fracture closure considering Barton-Bandis model.

◆ DualPorosityElementPropertyIds

IDs for saturated material element properties.

Enumerator
Knf_ID 

Id for retrieving the normal elastic stiffness of frature.

Ksf_ID 

Id for retrieving the shear elastic stiffness of fracture.

Ktf_ID 

Id for retrieving the tangential elastic stiffness of fracture.

Closure_ID 

Id for retrieving the closure model.

Member Function Documentation

◆ fillFluidFlowFracture()

bool GmpCoupledDualPorosityMaterial::fillFluidFlowFracture ( const GmElement * e,
GmMatrix & Kfc,
GmMatrix B,
double c,
int d,
const GmpMechanicPoint * mp,
const GmVector * coord,
unsigned nc ) const
virtual

Returns the fracture fluid flow matrix.

Reimplemented in GmpHMGeneralizedDualPorosityMaterial.

◆ fillFractureStorageCompMatrix()

bool GmpCoupledDualPorosityMaterial::fillFractureStorageCompMatrix ( const GmElement * e,
GmpHydraulicDualFlow * hydroPhys,
GmMatrix & Sfc,
const GmVector & N,
double c,
int d,
const GmpMechanicPoint * mp,
const GmVector * coord,
unsigned sc ) const
virtual

Evaluates the fracture storage compressibility matrix.

Calculates the stiffness matrix of "storage / compressibility of fluid" for element 'e' at the given integration point (coord, ip) storing the result at the Sfc matrix. N is the shape function vector and c a constant equal to w * h * detJ.

This function can operate either in an iso parametric setting (Sfc = n x n) or in a super parametric setting (Sfc = nf x nf) where n is the number of element nodes and nf the number of element corner nodes.

Returns Sfc = N * (Bp + porosity/Kw) * N.t() * c, where c should be equal to w * h * detJ

Reimplemented in GmpHMGeneralizedDualPorosityMaterial.

◆ fillTransferMatrix()

bool GmpCoupledDualPorosityMaterial::fillTransferMatrix ( const GmElement * e,
GmpHydraulicDualFlow * hp,
GmMatrix & Wfm,
const GmVector & N,
double c,
int d,
const GmpMechanicPoint * mp,
const GmVector * coord,
unsigned sc ) const
virtual

Evaluates the Transfer matrix considering the computed scalar "shape factor".

Fills the Transfer matrix with the computed scalar "shape factor" Returns Wfm = ws * c * N * N.t, where: ws is the shape factor.

◆ materialMetaDataMap()

const QVariantMap * GmpCoupledDualPorosityMaterial::materialMetaDataMap ( )
virtual

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

Reimplemented from GmpCoupledHMMaterial.

Reimplemented in GmpHMGeneralizedDualPorosityMaterial.

◆ mechanicalConstitutiveModel()

bool GmpCoupledDualPorosityMaterial::mechanicalConstitutiveModel ( const GmElement * e,
GmMatrix & Dmfr,
GmMatrix & Cm,
GmMatrix & Cfr,
const GmpMechanicPoint * mp,
const GmVector * coord,
unsigned sc,
unsigned ips ) const
virtual

Returns the mechanical constitutive model for fractured rock Dmfr.

Reimplemented in GmpHMGeneralizedDualPorosityMaterial.


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