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

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

#include <gmpTwoPhaseHydroMechanical.h>

Inheritance diagram for GmpTwoPhaseHydroMechanical:
Collaboration diagram for GmpTwoPhaseHydroMechanical:

Public Member Functions

 GmpTwoPhaseHydroMechanical (const char *pluginType, GmSimulationData *simulation, QString id, QString description, const GmpFemPhysicsCommonMaterialFactory *matFactory, const GmLogCategory &logger)
 
virtual ~GmpTwoPhaseHydroMechanical ()
 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 bool checkAndLoadAttributeAccessors (LuaTable &nodeTable, LuaTable &cellTable, LuaTable &gaussTable)
 Reimplementation of the common function to set initial gauss attributes.
 
virtual FemResultType fillElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Fills the element matrices and vectors for a generic element.
 
virtual bool calcDerivedResults (bool nonLinearSolver)
 Calculatations after the time step convergence.
 
virtual bool updatePorosity ()
 
virtual double porosityRate (const GmElement *e, const double phiOld, const double dt)
 
virtual double volumetricStrainRate (const GmElement *e, const double dt)
 
virtual bool beforeElementStiffnessLoop (const GmpFemMatrixSet &elemMatrices, const GmpFemVectorSet &elemVectors)
 
virtual FemResultType fillElementDataForBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 
virtual bool checkLoadedData ()
 Checks the loaded data.
 
virtual bool addStateItemsToGroup (GmStateDump *state, bool fixedHint, int groupId)
 
- Public Member Functions inherited from GmpHydroMechanical
 GmpHydroMechanical (const char *pluginType, GmSimulationData *simulation, QString id, QString description, const GmpFemPhysicsCommonMaterialFactory *matFactory, const GmLogCategory &logger)
 
virtual ~GmpHydroMechanical ()
 Destructor.
 
virtual FemResultType getElementData (const GmElement *e, GmMatrix &elemK, GmMatrix &elemC, GmVector &elemFi, GmVector &elemFe)
 
virtual void gravityForce (const GmElement *e, const GmVector *coord, int ip, GmVector &GFc, const GmVector &N, double c)
 
- 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
 

Protected Types

enum  TwoPhaseHMVarIds { PG_ID = GmpHydroMechanical::NUM_STATEVAR_IDS , NUM_STATEVAR_IDS }
 IDs for TwoPhaseHydroMechanical physics state vars. More...
 
enum  TwoPhaseHMPhysicsAttributeIds { UPDATEPOROSITY = GmpHydroMechanical::NUM_ATTRI_IDS , NUM_ATTRI_IDS }
 
enum  TwoPhaseHMNodeAttributeIds {
  RHOl_NA_ID , RHOlOLD_NA_ID , RHOg_NA_ID , RHOgOLD_NA_ID ,
  PlRef_NA_ID , PgRef_NA_ID , NUM_NA_IDS
}
 IDs for TwoPhaseHydroMechanical physics node attributes. More...
 
enum  TwoPhaseHMCellAttributeIds { POR_CA_ID , POROLD_CA_ID , Sl_CA_ID , NUM_CA_IDS }
 
- 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 Member Functions

virtual const GmElementDofdofMapping (GmCellType type) const
 
virtual void FillDofIndexPosition (const GmElement *e, QVector< int > &iUe, QVector< int > &iPe, QVector< int > &iPge)
 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, Pg} or {P, Pg, U}.
 
virtual bool assembleElementData (const GmElement *e, GmMatrix &J, GmVector &r, GmVector &ru, GmVector &rl, GmVector &rg, GmMatrix &Juu, GmMatrix &Jul, GmMatrix &Jug, GmMatrix &Jlu, GmMatrix &Jgu, tp::jacobianTerms &K, QVector< int > &iUe, QVector< int > &iPl, QVector< int > &iPg)
 Assembly the element left hand side matrix and right hand side vector: J * dx = -r.
 
- Protected Member Functions inherited from GmpHydroMechanical
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 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.

Member Enumeration Documentation

◆ TwoPhaseHMCellAttributeIds

Enumerator
POR_CA_ID 

Id for retrieving the accessor to the porosity attribute.

NUM_CA_IDS 

The number of state var ids above.

◆ TwoPhaseHMNodeAttributeIds

IDs for TwoPhaseHydroMechanical physics node attributes.

Enumerator
RHOl_NA_ID 

Id for retrieving the accessor to the Gas porepressure state var.

NUM_NA_IDS 

The number of state var ids above.

◆ TwoPhaseHMPhysicsAttributeIds

Enumerator
UPDATEPOROSITY 

Id of the physics attributes.

Flag to update the discontinuity set aperture

NUM_ATTRI_IDS 

The number of physics attribute ids above.

◆ TwoPhaseHMVarIds

IDs for TwoPhaseHydroMechanical physics state vars.

Enumerator
PG_ID 

Id for retrieving the accessor to the Gas porepressure state var.

NUM_STATEVAR_IDS 

The number of state var ids above.

Member Function Documentation

◆ addStateItemsToGroup()

bool GmpTwoPhaseHydroMechanical::addStateItemsToGroup ( GmStateDump * state,
bool fixedHint,
int groupId )
virtual

Reimplemented from GmpHydroMechanical.

◆ assembleElementData()

bool GmpTwoPhaseHydroMechanical::assembleElementData ( const GmElement * e,
GmMatrix & J,
GmVector & r,
GmVector & ru,
GmVector & rl,
GmVector & rg,
GmMatrix & Juu,
GmMatrix & Jul,
GmMatrix & Jug,
GmMatrix & Jlu,
GmMatrix & Jgu,
tp::jacobianTerms & K,
QVector< int > & iUe,
QVector< int > & iPl,
QVector< int > & iPg )
protectedvirtual

Assembly the element left hand side matrix and right hand side vector: J * dx = -r.

  • The right hand side vector, r, is assembled as minus the residual vector
    • The left hand side matrix, J, is assembled as the jacobian matrix

◆ beforeElementStiffnessLoop()

bool GmpTwoPhaseHydroMechanical::beforeElementStiffnessLoop ( const GmpFemMatrixSet & elemMatrices,
const GmpFemVectorSet & elemVectors )
virtual

Reimplemented from GmpHydroMechanical.

◆ calcDerivedResults()

bool GmpTwoPhaseHydroMechanical::calcDerivedResults ( bool nonLinearSolver)
virtual

Calculatations after the time step convergence.

Reimplemented from GmpHydroMechanical.

◆ dofMapping()

const GmElementDof * GmpTwoPhaseHydroMechanical::dofMapping ( GmCellType type) const
protectedvirtual

Reimplemented from GmpHydroMechanical.

◆ fillElementData()

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

Fills the element matrices and vectors for a generic element.

Reimplemented from GmpHydroMechanical.

◆ fillElementDataForBc()

GmpFemPhysics::FemResultType GmpTwoPhaseHydroMechanical::fillElementDataForBc ( const GmElement * e,
const GmBoundaryCondition * bc,
int bcIndex,
int bcListIndex,
int border,
GmpFemMatrixSet & elemMatrices,
GmpFemVectorSet & elemVectors )
virtual

Reimplemented from GmpCoupledHMFemPhysics.

◆ physicsMetaDataMap()

const QVariantMap * GmpTwoPhaseHydroMechanical::physicsMetaDataMap ( )
virtual

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

Reimplemented from GmpHydroMechanical.


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