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.
 
GmGaussAccessorgetApertureAccessor () const
 Returns the current aperture accessor.
 
GmGaussAccessorgetOldApertureAccessor () 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: