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

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

#include <gmpDualPorosityDualPermeability.h>

Inheritance diagram for GmpDualPorosityDualPermeability:
Collaboration diagram for GmpDualPorosityDualPermeability:

Public Member Functions

 GmpDualPorosityDualPermeability (const char *pluginType, GmSimulationData *simulation, QString id, QString description, const GmpFemPhysicsCommonMaterialFactory *matFactory, const GmLogCategory &logger)
 
virtual ~GmpDualPorosityDualPermeability ()
 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 dualPermeability/dualPorosity model.
 
virtual bool fillCoupledMatrix (const GmElement *e, const GmVector *coord, int ip, GmMatrix &R1, const GmVector &Np, const GmMatrix &Dmfr, const GmMatrix &Cm, const GmMatrix &Bu, double c)
 Returns the constitutive matrix for an dual porosity element element.
 
virtual bool fillCoupledFracture (const GmElement *e, const GmVector *coord, int ip, GmMatrix &R2, const GmVector &Np, const GmMatrix &Dmfr, const GmMatrix &Cm, const GmMatrix &Bu, double c)
 
virtual void fillMechanicalStiffnessMatrix (const GmElement *e, GmMatrix &Ke, const GmMatrix &Dmfr, const GmMatrix &B, double c)
 Fills the Mechanical Stiffness matrix Returns K = c* B.t() * Dmfr * B; where: Ke is the elastic equivalen stiffness matrix between fracture and block.
 
virtual void fillInternalForceVector (const GmElement *e, GmVector &Fi, const GmMatrix &Kc, const GmMatrix &Kfc, const GmMatrix &Wfm, const GmMatrix &R1, const GmMatrix &R2, const GmVector &pe, const GmVector &pfe, const GmVector &pfu, const QVector< int > &iUe, const QVector< int > &iPe, const QVector< int > &iPfe)
 Fills the Internal force vector for both fluids and mechanical Returns fi = Kc*pe + Kfc*pfe + ke*pfu, where: Kc is the permeability Matrix of the medium Kfc is the permeability Matrix of the fluid.
 
virtual void fillDampingMatrix (const GmElement *e, GmMatrix &C, const GmMatrix &Sc, const GmMatrix &Sfc, const GmMatrix &R1, const GmMatrix &R2, const QVector< int > &iUe, const QVector< int > &iPe, const QVector< int > &iPfe)
 Fills the Damping matrix with the computed "storage/compressibility" Matrizes Returns | 0 0 0 | C = | R1' Sc 0 | | R2' 0 Sfc | where: Sc is the "storage/compressibility" Matrix of the medium Sfc is the "storage/compressibility" Matrix of the fluid R1 is coupled matrix for the blocks R2 is coupled matrix for the fractures.
 
virtual void assemblyStiffnessMatrix (const GmElement *e, GmMatrix &elemK, const GmMatrix &Ke, const GmMatrix &R1, const GmMatrix &R2, const GmMatrix &Wfm, const GmMatrix &Kc, const GmMatrix &Kfc, const QVector< int > &iUe, const QVector< int > &iPe, const QVector< int > &iPfe)
 
virtual void FillDofIndexPosition (const GmElement *e, QVector< int > &iUe, QVector< int > &iPe, QVector< int > &iPfe)
 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 calcDerivedResults (bool nonLinearSolver)
 Calc velocity and flow on nodes and/or Gauss points.
 
virtual FemResultType fillElementDataForBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmpFemMatrixSet &elemMatrices, 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
 

Protected Types

enum  HMDPDKVarIds { PF_ID = GmpCoupledHMFemPhysics::NUM_STATEVAR_IDS , NUM_STATEVAR_IDS }
 IDs for HydroMechanical physics state vars. More...
 
- 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
 
- 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

◆ HMDPDKVarIds

IDs for HydroMechanical physics state vars.

Enumerator
PF_ID 

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

NUM_STATEVAR_IDS 

The number of state var ids above.

Member Function Documentation

◆ assemblyStiffnessMatrix()

void GmpDualPorosityDualPermeability::assemblyStiffnessMatrix ( const GmElement * e,
GmMatrix & Kelem,
const GmMatrix & Kep,
const GmMatrix & R1,
const GmMatrix & R2,
const GmMatrix & Wfm,
const GmMatrix & Kc,
const GmMatrix & Kfc,
const QVector< int > & iUe,
const QVector< int > & iPe,
const QVector< int > & iPfe )
virtual

Elemental Stiffness matrix | Ke -R1 -R2 |
Kelem =| 0 Kc+W -W |
| 0 -W Kfc+W |
where: Kc is the permeability Matrix of the medium Kfc is the permeability Matrix of the fluid R1 is coupled matrix for the blocks ws is the tranfer matrix between block and fractures R2 is coupled matrix for the fractures

◆ fillElementDataForBc()

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

Reimplemented from GmpCoupledHMFemPhysics.

◆ physicsMetaDataMap()

const QVariantMap * GmpDualPorosityDualPermeability::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.


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