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

Hydro-mechanical interface element for two-phase flow. More...

#include <gmpTwoPhaseHydroMechanicalInterface.h>

Inheritance diagram for GmpTwoPhaseHydroMechanicalInterface:
Collaboration diagram for GmpTwoPhaseHydroMechanicalInterface:

Public Member Functions

 GmpTwoPhaseHydroMechanicalInterface (const char *pluginType, GmSimulationData *simulation, QString id, QString description, const GmpFemPhysicsCommonMaterialFactory *matFactory, const GmLogCategory &logger)
 
virtual ~GmpTwoPhaseHydroMechanicalInterface ()
 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 checkLoadedData ()
 Checks the loaded data.
 
virtual bool getFluidDensities (const GmElement *e, double &rhol, double &rhog, const double PlRef, const double PgRef, const double Pl, const double Pg)
 Get the fluid densities.
 
virtual bool checkAndLoadAttributeAccessors (LuaTable &nodeTable, LuaTable &cellTable, LuaTable &gaussTable)
 Reimplementation of the common function to init the _mechanicPoint structure.
 
virtual FemResultType fillElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Fills the element matrices and vectors for a generic Interface element.
 
virtual bool calcDerivedResults (bool nonLinearSolver)
 Calc results at nodes and/or Gauss points.
 
virtual bool beforeElementStiffnessLoop (const GmpFemMatrixSet &elemMatrices, const GmpFemVectorSet &elemVectors)
 
virtual bool addStateItemsToGroup (GmStateDump *state, bool fixedHint, int groupId)
 
- Public Member Functions inherited from GmpHydroMechanicalInterface
 GmpHydroMechanicalInterface (const char *pluginType, GmSimulationData *simulation, QString id, QString description, const GmpFemPhysicsCommonMaterialFactory *matFactory, const GmLogCategory &logger)
 
virtual ~GmpHydroMechanicalInterface ()
 Destructor.
 
- 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 Types

enum  TwoPhaseHMVarIds { PG_ID = GmpHydroMechanicalInterface::NUM_STATEVAR_IDS , NUM_STATEVAR_IDS }
 IDs for TwoPhaseHydroMechanicalInterface physics state vars. More...
 
enum  TwoPhaseHMPhysicsAttributeIds { UPDATEPOROSITY = GmpHydroMechanicalInterface::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 GmpHydroMechanicalInterface
enum  elemState { CLOSE_MODE , TIP_MODE , OPEN_MODE }
 
- 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
 
void FillDofIndexPosition (const GmElement *e, QVector< int > &iUe, QVector< int > &iPe, QVector< int > &iPg)
 Fills the element matrices and vectors for a generic Interface element. LIMITATIONS: The implementation consider linear pore-pressure fields. It also assumes that the order of the DOFs per node is {U, Pl, Pg}.
 
bool fillMissingDispVarValues ()
 fills missing displacement for triple nodded zero-thickness interface element
 
virtual void setInitialConditions (GmpMechanicPoint *mp)
 Coupled physic controls the initial conditions that depends of two or more auxiliar physics However, auxiliar physics control its own initial conditions.
 
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 GmpHydroMechanicalInterface
void elemMatrixDofMap (const GmElement *e, QVector< int > &iUe, QVector< int > &iPe, int &numUe, int &in, int &elemRow) const
 Fills the element matrices and vectors for a generic Interface element.
 
bool fillCoupledMatrix (const GmElement *e, const GmVector *coord, int ip, GmMatrix &Le, const GmVector &Np, const GmMatrix &B, double c) const
 Returns the coupled matrix Le = B.t() * m * Np * H * c.
 
void calcPorePressure (const GmElement *e, const GmVector *coord, int ip, GmVector &Pg, const GmVector &Np, const GmVector &pe) const
 Returns the vectors with pore pressure at gauss point 'Pg'.
 
void fillMechanicalStiffnessMatrix (const GmElement *e, GmMatrix &Ke, const GmMatrix &B, double c) const
 Returns the mechanical stiffness matrix Ke = Bu' * Dep * Bu * c.
 
void assemblyDampingMatrix (const GmElement *e, GmMatrix &elemC, const GmMatrix &Le, const GmMatrix &Sc, const QVector< int > &iUe, const QVector< int > &iPe) const
 Returns the elemental damping matrix 'elemC'.
 
void assemblyStiffnessMatrix (const GmElement *e, GmMatrix &elemK, const GmMatrix &Ke, const GmMatrix &Le, const GmMatrix &Kc, const QVector< int > &iUe, const QVector< int > &iPe) const
 Returns the elemental stiffness matrix 'elemK'.
 
void assemblyInternalForceVector (const GmElement *e, GmVector &elemFi, const GmVector &FUe, const GmVector &FPe, const QVector< int > &iUe, const QVector< int > &iPe) const
 Returns the elemental internal force 'elemFi' (internal force which is independent of the time)
 
bool fillMissingDispVarValues ()
 fills missing displacement for triple nodded zero-thickness interface element
 
- 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

Hydro-mechanical interface element for two-phase flow.

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 pore pressure 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 TwoPhaseHydroMechanicalInterface physics state vars.

Enumerator
PG_ID 

Id for retrieving the accessor to the Gas pore pressure state var.

NUM_STATEVAR_IDS 

The number of state var ids above.

Member Function Documentation

◆ addStateItemsToGroup()

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

Reimplemented from GmpHydroMechanicalInterface.

◆ assembleElementData()

bool GmpTwoPhaseHydroMechanicalInterface::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 GmpTwoPhaseHydroMechanicalInterface::beforeElementStiffnessLoop ( const GmpFemMatrixSet & elemMatrices,
const GmpFemVectorSet & elemVectors )
virtual

Reimplemented from GmpHydroMechanicalInterface.

◆ calcDerivedResults()

bool GmpTwoPhaseHydroMechanicalInterface::calcDerivedResults ( bool nonLinearSolver)
virtual

Calc results at nodes and/or Gauss points.

Reimplemented from GmpHydroMechanicalInterface.

◆ checkAndLoadAttributeAccessors()

bool GmpTwoPhaseHydroMechanicalInterface::checkAndLoadAttributeAccessors ( LuaTable & nodeTable,
LuaTable & cellTable,
LuaTable & gaussTable )
virtual

Reimplementation of the common function to init the _mechanicPoint structure.

Reimplemented from GmpHydroMechanicalInterface.

◆ dofMapping()

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

Reimplemented from GmpHydroMechanicalInterface.

◆ fillElementData()

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

Fills the element matrices and vectors for a generic Interface element.

Reimplemented from GmpHydroMechanicalInterface.

◆ physicsMetaDataMap()

const QVariantMap * GmpTwoPhaseHydroMechanicalInterface::physicsMetaDataMap ( )
virtual

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

Reimplemented from GmpHydroMechanicalInterface.

◆ setInitialConditions()

void GmpTwoPhaseHydroMechanicalInterface::setInitialConditions ( GmpMechanicPoint * mp)
protectedvirtual

Coupled physic controls the initial conditions that depends of two or more auxiliar physics However, auxiliar physics control its own initial conditions.

Reimplemented from GmpHydroMechanicalInterface.


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