24#ifndef _GEMA_PLUGIN_TWOPHASE_HYDROMECHANICAL_H_
25#define _GEMA_PLUGIN_TWOPHASE_HYDROMECHANICAL_H_
30#include <gmpFemPhysicsCoupled.h>
31#include <GmpHydraulicMaterialTwoPhase.h>
32#include <gmpHydraulicTwoPhaseFlow.h>
33#include <gmpHydraulicTwoPhaseUtils.h>
38namespace tp = GmpHydraulicTwoPhaseUtils;
46 const GmpFemPhysicsCommonMaterialFactory* matFactory,
const GmLogCategory& logger);
56 virtual FemResultType
fillElementData(
const GmElement* e, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
58 virtual bool updatePorosity();
59 virtual double porosityRate(
const GmElement* e,
const double phiOld,
const double dt);
60 virtual double volumetricStrainRate(
const GmElement* e,
const double dt);
61 virtual bool beforeElementStiffnessLoop(
const GmpFemMatrixSet& elemMatrices,
const GmpFemVectorSet& elemVectors);
62 virtual FemResultType fillElementDataForBc(
const GmElement* e,
const GmBoundaryCondition* bc,
int bcIndex,
int bcListIndex,
int border, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
66 virtual bool addStateItemsToGroup(
GmStateDump* state,
bool fixedHint,
int groupId);
@ NUM_ATTRI_IDS
The number of physics attribute ids above.
Definition gmpCoupledHMFemPhysics.h:73
@ NUM_STATEVAR_IDS
The number of state var ids above.
Definition gmpCoupledHMFemPhysics.h:83
Dual flow hydraulic 2D & 3D for Quad, Tri, Hex and Tet.
Definition gmpHydroMechanical.h:38
Dual flow hydraulic 2D & 3D for Quad, Tri, Hex and Tet.
Definition gmpTwoPhaseHydroMechanical.h:42
TwoPhaseHMCellAttributeIds
Definition gmpTwoPhaseHydroMechanical.h:119
@ NUM_CA_IDS
The number of state var ids above.
Definition gmpTwoPhaseHydroMechanical.h:124
@ POR_CA_ID
Id for retrieving the accessor to the porosity attribute.
Definition gmpTwoPhaseHydroMechanical.h:120
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.
Definition gmpTwoPhaseHydroMechanical.cpp:710
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....
Definition gmpTwoPhaseHydroMechanical.cpp:290
virtual bool checkAndLoadAttributeAccessors(LuaTable &nodeTable, LuaTable &cellTable, LuaTable &gaussTable)
Reimplementation of the common function to set initial gauss attributes.
Definition gmpTwoPhaseHydroMechanical.cpp:275
virtual bool checkLoadedData()
Checks the loaded data.
Definition gmpTwoPhaseHydroMechanical.cpp:152
TwoPhaseHMPhysicsAttributeIds
Definition gmpTwoPhaseHydroMechanical.h:97
@ UPDATEPOROSITY
Id of the physics attributes.
Definition gmpTwoPhaseHydroMechanical.h:98
@ NUM_ATTRI_IDS
The number of physics attribute ids above.
Definition gmpTwoPhaseHydroMechanical.h:100
virtual FemResultType fillElementData(const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
Fills the element matrices and vectors for a generic element.
Definition gmpTwoPhaseHydroMechanical.cpp:380
virtual const QVariantMap * physicsMetaDataMap()
Returns a reference for the Hydraulics dual flow attribute map, built when the function is called for...
Definition gmpTwoPhaseHydroMechanical.cpp:94
TwoPhaseHMNodeAttributeIds
IDs for TwoPhaseHydroMechanical physics node attributes.
Definition gmpTwoPhaseHydroMechanical.h:105
@ RHOl_NA_ID
Id for retrieving the accessor to the Gas porepressure state var.
Definition gmpTwoPhaseHydroMechanical.h:106
@ NUM_NA_IDS
The number of state var ids above.
Definition gmpTwoPhaseHydroMechanical.h:114
TwoPhaseHMVarIds
IDs for TwoPhaseHydroMechanical physics state vars.
Definition gmpTwoPhaseHydroMechanical.h:88
@ NUM_STATEVAR_IDS
The number of state var ids above.
Definition gmpTwoPhaseHydroMechanical.h:92
@ PG_ID
Id for retrieving the accessor to the Gas porepressure state var.
Definition gmpTwoPhaseHydroMechanical.h:89
virtual bool calcDerivedResults(bool nonLinearSolver)
Calculatations after the time step convergence.
Definition gmpTwoPhaseHydroMechanical.cpp:760
virtual ~GmpTwoPhaseHydroMechanical()
Destructor.
Definition gmpTwoPhaseHydroMechanical.cpp:87
Declaration of the GmpCoupledHMFemPhysics class.
Declaration of the gmpHydroMechanical classes.