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

Dual flow hydraulic 2D & 3D for Quad, Tri, Hex and Tet. More...

#include <gmpHydroMechanical.h>

Inheritance diagram for GmpHydroMechanical:
Collaboration diagram for GmpHydroMechanical:

Public Member Functions

 GmpHydroMechanical (const char *pluginType, GmSimulationData *simulation, QString id, QString description, const GmpFemPhysicsCommonMaterialFactory *matFactory, const GmLogCategory &logger)
 
virtual ~GmpHydroMechanical ()
 Destructor.
 
virtual const QVariantMap * physicsMetaDataMap ()
 Returns a reference for the Hydraulics dual flow attribute map, built when the function is called for the first time.
 
virtual FemResultType fillElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Fills the element matrices and vectors for a generic element. Applying the Galerking method (Zienkiewicz and Taylor, 1989)
 
virtual FemResultType getElementData (const GmElement *e, GmMatrix &elemK, GmMatrix &elemC, GmVector &elemFi, GmVector &elemFe)
 
virtual bool calcDerivedResults (bool nonLinearSolver)
 Calc velocity and flow on nodes and/or Gauss points.
 
virtual void gravityForce (const GmElement *e, const GmVector *coord, int ip, GmVector &GFc, const GmVector &N, double c)
 
virtual bool beforeElementStiffnessLoop (const GmpFemMatrixSet &elemMatrices, const GmpFemVectorSet &elemVectors)
 
virtual bool addStateItemsToGroup (GmStateDump *state, bool fixedHint, int groupId)
 
- Public Member Functions inherited from GmpCoupledHMFemPhysics
 GmpCoupledHMFemPhysics (const char *pluginType, GmSimulationData *simulation, QString id, QString description, const GmpFemPhysicsCommonMaterialFactory *matFactory, const GmLogCategory &logger)
 Constructor. Will be called by the plugin loading code.
 
virtual ~GmpCoupledHMFemPhysics ()
 Destructor.
 
virtual const char * pluginName () const
 
virtual const char * pluginType () const
 
virtual bool supportsStateDumping ()
 
virtual bool fixedNodalForcesBc (QVector< int > &nodes, QVector< int > &dof, QVector< double > &values) const
 
virtual bool fixedNodalDofsBc (QVector< int > &nodes, QVector< int > &dof, QVector< double > &values, bool *constantValues) const
 
virtual FemResultType fillElementDataForBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 

Protected Member Functions

virtual const GmElementDofdofMapping (GmCellType type) const
 
virtual bool fillCoupledMatrix (const GmElement *e, GmMatrix &Le, const GmVector &Np, const GmMatrix &B, double c, int ip)
 
virtual void fillStorageCompMatrix (const GmElement *e, const GmVector *coord, int ip, GmMatrix &Sc, const GmVector &Np, double c)
 Calculates the compressibility matrix of "storage / compressibility" for element 'e' at the given integration point (coord, ip) storing the result at the Sc matrix. N is the shape function vector and c a constant equal to w * h * detJ.
 
virtual void fillCouplingMecHydMatrix (const GmElement *e, const GmVector *coord, int ip, GmMatrix &Lup, const GmVector &Np, const GmMatrix &Bu, double c)
 Calculates the stiffness matrix of the mechanical- hydraulic coupling.
 
virtual void fillCouplingHydMecMatrix (const GmElement *e, const GmVector *coord, int ip, GmMatrix &Lup, const GmVector &Np, const GmMatrix &Bu, double c)
 Calculates the stiffness matrix of the hydraulic - mechanical coupling.
 
virtual bool assemblyElemDampingMatrix (const GmElement *e, GmMatrix &elemC, const GmMatrix &Lpu, const GmMatrix &Sc, const QVector< int > &iUe, const QVector< int > &iPe)
 
virtual void FillDofIndexPosition (const GmElement *e, QVector< int > &iUe, QVector< int > &iPe)
 Fills the position index with the degreee of freedo, both the mechanical and hydraulic physics. the implementation supports order of the defined state variables i.e {U, P} or {P, U}.
 
virtual bool assemblyElemStiffnessMatrix (const GmElement *e, GmMatrix &elemK, const GmMatrix &Kep, const GmMatrix &Lup, const GmMatrix &Kc, const QVector< int > &iUe, const QVector< int > &iPe)
 
virtual bool getPorePressureGaussPoint (const GmElement *e, const GmVector *coord, int ip, GmVector &Pg, const GmVector &Np, const GmVector &pe)
 
virtual void assemblyInternalForceVector (const GmElement *e, GmMatrix &elemFi, const GmVector &Fint_St, const GmMatrix &Kc, const GmVector &pe, const QVector< int > &iUe, const QVector< int > &iPe)
 
virtual void fillFlowMatrix (const GmElement *e, const GmVector *coord, int ip, GmMatrix &Kc, const GmMatrix &Bp, double c)
 Fills fluid flow matrix considering permeability updates.
 
- Protected Member Functions inherited from GmpCoupledHMFemPhysics
virtual bool checkAndLoadPrivateData (LuaTable &table)
 Overloads default checkAndLoadPrivateData() to be able to setup materials.
 

Additional Inherited Members

- Protected Types inherited from GmpCoupledHMFemPhysics
enum  PhysicsAttributeIds { ISOPARAMETRIC_ID , NUM_ATTRI_IDS }
 IDs for physics attributes. More...
 
enum  StateVarIds { U_ID , P_ID , NUM_STATEVAR_IDS }
 IDs for Mechanical and Hydro physics state vars. More...
 
- Protected Attributes inherited from GmpCoupledHMFemPhysics
const char * _pluginType
 The plugin type name.
 
bool _setInitialCond
 Sets the initial conditions required by the physics.
 
GmpMechanicalPhysics * _mechPhys
 The mechanical physics providing parameters and matrices to the coupling equation.
 
GmpHydraulic * _hydroPhys
 The hydraulic physics providing parameters and matrices to the coupling equation.
 

Detailed Description

Dual flow hydraulic 2D & 3D for Quad, Tri, Hex and Tet.

This physics plugin calculates the deformation and pore pressure coupled.

Member Function Documentation

◆ calcDerivedResults()

bool GmpHydroMechanical::calcDerivedResults ( bool nonLinearSolver)
virtual

Calc velocity and flow on nodes and/or Gauss points.

Reimplemented in GmpTwoPhaseHydroMechanical.

◆ fillElementData()

GmpFemPhysics::FemResultType GmpHydroMechanical::fillElementData ( const GmElement * e,
GmpFemMatrixSet & elemMatrices,
GmpFemVectorSet & elemVectors )
virtual

Fills the element matrices and vectors for a generic element. Applying the Galerking method (Zienkiewicz and Taylor, 1989)

Reimplemented in GmpHMEmbeddedFracture, GmpHMEmbeddedFractureConductive, and GmpTwoPhaseHydroMechanical.

◆ fillFlowMatrix()

void GmpHydroMechanical::fillFlowMatrix ( const GmElement * e,
const GmVector * coord,
int ip,
GmMatrix & Kc,
const GmMatrix & Bp,
double c )
protectedvirtual

Fills fluid flow matrix considering permeability updates.

Fills the fluid flow matrix considering permeability update.

◆ fillStorageCompMatrix()

void GmpHydroMechanical::fillStorageCompMatrix ( const GmElement * e,
const GmVector * coord,
int ip,
GmMatrix & Sc,
const GmVector & Np,
double c )
protectedvirtual

Calculates the compressibility matrix of "storage / compressibility" for element 'e' at the given integration point (coord, ip) storing the result at the Sc 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 (Sc = n x n) or in a super parametric setting (Sc = np x np) where n is the number of element nodes and np the number of element corner nodes.

Returns Sc = N * ((Biot - porosity)/Kss + porosity/Kww) * N.t() * c, where c should be equal to w * h * detJ

◆ physicsMetaDataMap()

const QVariantMap * GmpHydroMechanical::physicsMetaDataMap ( )
virtual

Returns a reference for the Hydraulics dual flow attribute map, built when the function is called for the first time.

Reimplemented from GmpCoupledHMFemPhysics.

Reimplemented in GmpHMEmbeddedFracture, GmpHMEmbeddedFractureConductive, and GmpTwoPhaseHydroMechanical.


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