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

Hydro-Mechanical Physics with conductive embedded fractures. More...

#include <gmpHMEmbeddedFractureConductive.h>

Inheritance diagram for GmpHMEmbeddedFractureConductive:
Collaboration diagram for GmpHMEmbeddedFractureConductive:

Public Types

enum  embeddedPhysicsAttributeIds { UPDATE_DSET_APERTURE = GmpHydroMechanical::NUM_ATTRI_IDS , NUM_ATTRI_IDS }
 IDs for physics attributes. More...
 

Public Member Functions

 GmpHMEmbeddedFractureConductive (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 ~GmpHMEmbeddedFractureConductive ()
 Destructor.
 
virtual const QVariantMap * physicsMetaDataMap ()
 Extends the HM physics meta data map to include the discontinuity set and state variables with history.
 
bool checkAndLoadPrivateData (LuaTable &table)
 Overloads default checkAndLoadPrivateData() to be able to setup materials.
 
bool checkAndLoadAttributeAccessors (LuaTable &nodeTable, LuaTable &cellTable, LuaTable &gaussTable)
 Reimplementation of the common function to init the _hmaterialPointAccessor structure.
 
void fillElementOldDisplacement (const GmElement *e, GmVector &ur)
 Given an element, fills the vector ue with nodal old displacement vector. The vector should have size equal to the number of calculated nodes.
 
void fillElementOldPorePressure (const GmElement *e, GmVector &pe)
 Given an element, fills the vector pe with nodal old pore pressure. The vector should have size equal to the number of calculated nodes.
 
virtual bool checkAndLoadDiscontinuitySetAccessors (LuaTable &table)
 Reimplementation of the common function to set initial gauss attributes.
 
virtual bool setInitialConditions ()
 Sets the initial conditions for embedded fracture models.
 
virtual FemResultType fillElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Fills the element matrices and vectors for a generic element.
 
virtual FemResultType fullyImplicitTimeDiscretization (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors, GmMatrix &elemK, GmMatrix &elemC, GmVector &elemFi)
 Discretizes the system of equations in time using a fully implicit scheme.
 
virtual FemResultType fillEnrichedElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Fills the element matrices and vectors for a enriched element.
 
void assembleElementData (const GmElement *e, GmMatrix &A, GmVector &b, GmMatrix &Al, GmVector &bl, bool needsLHS, bool needsRHS)
 Assemble the element matrix and vector The matrix A and vector b are the global ones, while Al and bl are the local ones. The local ones are assembled with all regular displacement dofs then all the regular pressure dofs The global ones are assemble with the dofs per node.
 
void assembleElementDofVector (const GmElement *e, GmVector &dof, GmMatrix &dof_u, GmVector &dof_p)
 Fills the element dof vector.
 
FemResultType solveLocalEquations (const GmElement *e, GmMatrix &A_rr, GmMatrix &A_re, GmMatrix &A_er, GmMatrix &A_ee, GmVector &b_r, GmVector &b_e, GmVector &dof_e)
 Solves the local equilibrium equations associated with the discontinuities.
 
FemResultType fillSystemSubData (const GmElement *e, GmMatrix &A_rr, GmMatrix &A_re, GmMatrix &A_er, GmMatrix &A_ee, GmVector &b_r, GmVector &b_e, GmVector &dof_e, GmMatrix &stressCoeffs, QMap< int, int > dNodesGlobalToLocal)
 Fills the jacobian sub-matrices and residual sub-vectors. Jac = [ Jac_rr Jac_re ] , res = [ res_r ] [ Jac_er Jac_ee ] [ res_e ].
 
FemResultType fillElementSubData (const GmElement *e, QMap< QString, GmMatrix > &sub_matrices, QMap< QString, GmVector > &sub_vectors, GmVector &dof_ur, GmVector &dof_ue, GmVector &dof_pc, GmMatrix &stressCoeffs, QMap< int, int > dNodesGlobalToLocal)
 Fills the element sub-matrices and sub-vectors for a enriched element.
 
void initializeSubMatrices (QMap< QString, GmMatrix > &sub_matrices, QMap< QString, GmVector > &sub_vectors, int ndofs_ur, int ndofs_ue, int ndofs_pc, int ndofs_pd)
 Initializes the sub-matrices and sub-vectors for the element.
 
FemResultType updateDiscontinuitySetHMCouplingParameters (const GmElement *e)
 Update the discontinuity elements integration points flow status. It updates based on the mechanical physics status.
 
bool updateHMCouplingParameters (const GmElement *e, const GmVector *coord, int ip)
 Updates the hydromechanical coupling parameters of the discontinuity element integration points.
 
bool updateAperture (const GmElement *e, const GmVector *coord, int ip)
 Updates the normal aperture of the discontinuity element integration points.
 
FemResultType fillHMCouplingData (const GmElement *e, GmMatrix &Quc, GmMatrix &Qac, GmMatrix &Qad, GmMatrix &Qca, GmMatrix &stressCoeffs, QMap< int, int > dNodesGlobalToLocal)
 Fills the hydromechanical coupling data.
 
FemResultType fillContinuumHMCouplingData (const GmElement *e, GmMatrix &Quc, GmMatrix &Qac, GmMatrix &Qca, GmMatrix &stressCoeffs)
 Fills the hydromechanical coupling data from the continuum.
 
FemResultType fillDiscontinuitySetHMCouplingData (const GmElement *e, GmMatrix &Qad, QMap< int, int > dNodesGlobalToLocal)
 Fills the hydromechanical coupling data from the discontinuity set.
 
- 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 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 Attributes

GmpHydraulicEmbeddedFractureConductive * _embeddedHydroPhys
 The hydraulic physics providing parameters and matrices to the coupling equation.
 
GmpMechanicalEmbeddedFracture * _embeddedMechPhys
 The mechanical physics providing parameters and matrices to the coupling equation.
 
- 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.
 

Private Attributes

GmValueAccessor_uOldAcc
 Accessor to the old displacement.
 
GmValueAccessor_pOldAcc
 Accessor to the old pore pressure.
 

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 Member Functions inherited from GmpHydroMechanical
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

Detailed Description

Hydro-Mechanical Physics with conductive embedded fractures.

This physics plugin extends the HM physics to consider embedded fractures.

Member Enumeration Documentation

◆ embeddedPhysicsAttributeIds

IDs for physics attributes.

Enumerator
UPDATE_DSET_APERTURE 

Id of the physics attributes.

Flag to update the discontinuity set aperture

NUM_ATTRI_IDS 

The number of physics attribute ids above.

Member Function Documentation

◆ checkAndLoadPrivateData()

bool GmpHMEmbeddedFractureConductive::checkAndLoadPrivateData ( LuaTable & table)
virtual

Overloads default checkAndLoadPrivateData() to be able to setup materials.

Reimplemented from GmpCoupledHMFemPhysics.

◆ fillElementData()

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

Fills the element matrices and vectors for a generic element.

Reimplemented from GmpHydroMechanical.

◆ physicsMetaDataMap()

const QVariantMap * GmpHMEmbeddedFractureConductive::physicsMetaDataMap ( )
virtual

Extends the HM physics meta data map to include the discontinuity set and state variables with history.

Reimplemented from GmpHydroMechanical.


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