![]() |
CoupledHMFemPhysics
The GeMA Coupled Hydro-Mechanical FEM Physics Plugin
|
Hydro-Mechanical Physics with conductive embedded fractures. More...
#include <gmpHMEmbeddedFracture.h>


Public Types | |
| enum | embeddedPhysicsAttributeIds { UPDATE_DSET_APERTURE = GmpHydroMechanical::NUM_ATTRI_IDS , NUM_ATTRI_IDS } |
| IDs for physics attributes. More... | |
Public Member Functions | |
| GmpHMEmbeddedFracture (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 | ~GmpHMEmbeddedFracture () |
| 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 | fillElementOldEnrichedDof (const GmElement *e, GmVector &ue_old) |
| Fills vector with the enriched dofs from the previous time step. | |
| 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. | |
| void | updateDiscontinuityAttributes (const GmElement *e, GmVector &dof_e) |
| Update the cell attributes of the discontinuity elements for each physics. | |
| 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, const GmMatrix &Al, const 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, GmVector &dof_pj, 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_pj, 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 &Quj, GmMatrix &Qac, GmMatrix &Qaj, GmMatrix &Qad, GmMatrix &Qca, GmMatrix &Qja, GmMatrix &stressCoeffs, QMap< int, int > dNodesGlobalToLocal) |
| Fills the hydromechanical coupling data. | |
| FemResultType | fillContinuumHMCouplingData (const GmElement *e, GmMatrix &Quc, GmMatrix &Quj, GmMatrix &Qac, GmMatrix &Qaj, GmMatrix &Qca, GmMatrix &Qja, GmMatrix &stressCoeffs) |
| Fills the hydromechanical coupling data from the continuum. | |
| FemResultType | fillDiscontinuitySetHMCouplingData (const GmElement *e, GmMatrix &Qad, const 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 | |
| GmpHydraulicEmbeddedFracture * | _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 GmElementDof * | dofMapping (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 | |
Hydro-Mechanical Physics with conductive embedded fractures.
This physics plugin extends the HM physics to consider embedded fractures.
|
virtual |
Overloads default checkAndLoadPrivateData() to be able to setup materials.
Reimplemented from GmpCoupledHMFemPhysics.
|
virtual |
Fills the element matrices and vectors for a generic element.
Reimplemented from GmpHydroMechanical.
|
virtual |
Extends the HM physics meta data map to include the discontinuity set and state variables with history.
Reimplemented from GmpHydroMechanical.