![]() |
HydroFemPhysics
The GeMA Hydraulic FEM Physics Plugin
|
Basic class for the hydraulic physics plugin object. More...
#include <gmpHydraulicEmbeddedFracture.h>


Public Member Functions | |
| GmpHydraulicEmbeddedFracture (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 | ~GmpHydraulicEmbeddedFracture () |
| Destructor. | |
| virtual const char * | pluginType () const |
| virtual const QVariantMap * | physicsMetaDataMap () |
| Returns a reference for the single Hydraulics attribute map, built when the function is called for the first time. | |
| bool | checkAndLoadAttributeAccessors (LuaTable &nodeTable, LuaTable &cellTable, LuaTable &gaussTable) |
| Reimplementation of the common function to init the _hmaterialPointAccessor structure. | |
| virtual FemResultType | fillElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors) |
| Fills the element matrices and vectors for a generic element. | |
| virtual FemResultType | fillEnrichedElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors, int nDiscontinuities) |
| Fills the element matrices and vectors for a enriched element. | |
| virtual FemResultType | fullyImplicitTimeDiscretization (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors) |
| Discretizes the system of equations in time using a fully implicit scheme. | |
| virtual bool | fillDiscontinuityInternalPressureNodalValues (GmElement *e, GmValueAccessor *nAc) |
| Fills nodal pressure of the discontinuity elements inside element e TODO: Consider the discontinuity pressure jump. | |
| 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. | |
| void | fillElementPorePressureJump (const GmElement *e, GmVector &Dp) |
| Given an element, fills the vector Dp with the current pore pressure jump. The vector should have size equal to the number of discontinuities that crosses the element. | |
| void | fillElementOldPorePressureJump (const GmElement *e, GmVector &dpe) |
| Given an element, fills the vector DpOld with the old pore pressure jump. The vector should have size equal to the number of discontinuities that crosses the element. | |
| void | setElementPorePressureJump (const GmElement *e, GmVector &dpe) |
| Given an element, sets the value of the pressure jump associated with the discontinuity elements. | |
| void | fillDiscontinuitySetInternalPressure (const GmElement *e, GmVector &pd, QMap< int, int > dNodesGlobalToLocal) |
| Given an element, fills the vector pd with the internal pressure of the discontinuity set elements. | |
| void | fillDiscontinuitySetOldInternalPressure (const GmElement *e, GmVector &pdOld, QMap< int, int > dNodesGlobalToLocal) |
| Given an element, fills the vector pdOld with the old internal pressure of the discontinuity set elements. | |
| void | setDiscontinuitySetInternalPressure (const GmElement *e, GmVector &pd, QMap< int, int > dNodesGlobalToLocal) |
| Given an element, set the vector pd with the internal pressure of the discontinuity set elements. | |
| FemResultType | fillDiscontinuousPressureElementSubData (const GmElement *e, bool needsK, bool needsC, bool needsFi, GmMatrix &Hcc, GmMatrix &Hcj, GmMatrix &Hjc, GmMatrix &Hjj, GmMatrix &Scc, GmMatrix &Scj, GmMatrix &Sjj, QMap< int, int > dNodesGlobalToLocal, int nDeltaPDofs) |
| Fills the element matrices and vectors of the enriched element that considers a discontinuous pressure field. | |
| void | fillCompressibilityMatrices (const GmElement *e, GmMatrix &Xe, const GmVector *coord, int ip, GmMatrix &Scc, GmMatrix &Scj, GmMatrix &Sjj, const GmVector &N, double c, int nDeltaPDofs) |
| Fills the element compressibility matrices for a enriched element with discontinuous pressure field. TODO: Implement the enriched shape function vector and add the discontinuous part. | |
| void | fillFluidFlowMatrices (const GmElement *e, GmMatrix &Xe, const GmVector *coord, int ip, GmMatrix &Hcc, GmMatrix &Hcj, GmMatrix &Hjc, GmMatrix &Hjj, const GmMatrix &Bp, double c, int nDeltaPDofs) |
| Fills the element fluid-flow matrices for a enriched element with discontinuous pressure field. | |
| void | fillEnrichedShapeValues (const GmElement *e, GmMatrix &Xe, GmVector &N, GmVector &X, int idDiscontinuityElem, GmVector &Nenr) |
| void | fillNenrMatrix (const GmElement *e, GmMatrix &Xe, GmVector &N, GmVector &X, GmVector &Nenr) |
| void | fillGMatrix (const GmElement *e, GmMatrix &Xe, const GmMatrix &B, GmMatrix &G) |
| int | getNumberEnrichedDofs (const GmElement *e) |
| Gets the number of enrichment degrees of freedom in the given element Considers that each discontinuity has one pressure jump dof. | |
| FemResultType | fillDiscontinuitySetElementData (const GmElement *e, GmMatrix &Hd, GmMatrix &Sd, GmMatrix &Lcc, GmMatrix &Lcj, GmMatrix &Lcd, GmMatrix &Ljj, GmMatrix &Ljd, GmMatrix &Ldd, GmMatrix &Tcd, GmMatrix &Tjd, QMap< int, int > globalToLocal) |
| Fills the element matrices and vectors of the discontinuity elements. | |
Public Member Functions inherited from GmpHydraulicEmbeddedFractureConductive | |
| GmpHydraulicEmbeddedFractureConductive (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 | ~GmpHydraulicEmbeddedFractureConductive () |
| Destructor. | |
| bool | checkAndLoadAttributeAccessors (LuaTable &nodeTable, LuaTable &cellTable, LuaTable &gaussTable) |
| Reimplementation of the common function to init the _hmaterialPointAccessor structure. | |
| virtual bool | checkAndLoadDiscontinuitySetAccessors (LuaTable &table) |
| Reimplementation of the common function to set initial gauss attributes. | |
| virtual bool | setInitialConditions () |
| Sets the initial conditions required by interface elements. An = normal aperture. | |
| virtual bool | calcDerivedResults (bool nonLinear) |
| Save the internal pressure dofs associated with the discontinuities. | |
| void | assembleDiscontinuityElementMatrix (GmMatrix &Kg, const GmMatrix &Kl, const QVector< int > &dof) const |
| Assemble the contribution of the discontinuity element. | |
| FemResultType | fillDiscontinuitySetElementData (const GmElement *e, GmMatrix &Hd, GmMatrix &Sd, GmMatrix &Tcd, const QMap< int, int > &dNodesGlobalToLocal) |
| Fills the element matrices and vectors of the discontinuity elements. | |
| FemResultType | fillContinuumElementData (const GmElement *e, GmMatrix &Hcc, GmMatrix &Scc) |
| Reimplementation of the continuum regular element fillElementData. This function is used by the coupled hydro-mechanical embedded physics. TODO: Try to improve and avoid its use, by getting directly the matrices from the base class. | |
Public Member Functions inherited from GmpHydraulic | |
| GmpHydraulic (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 | ~GmpHydraulic () |
| Destructor. | |
| virtual const char * | pluginName () const |
| virtual bool | supportsStateDumping () |
| virtual bool | fixedNodalForcesBc (QVector< int > &nodes, QVector< int > &dof, QVector< double > &values) const |
| See comments on base class. Fills vectors with prescribed nodal forces - flow. | |
| virtual bool | fixedNodalDofsBc (QVector< int > &nodes, QVector< int > &dof, QVector< double > &values, bool *constantValues) const |
| See comments on base class. Fills vectors with prescribed node pore pressures. | |
| virtual FemResultType | fillElementDataForBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors) |
| virtual FemResultType | fillElementDataBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmMatrix &elemMat, GmVector &elemVec) |
| virtual void | fillStorageCompMatrix (const GmElement *e, const GmVector *coord, int ip, GmMatrix &Sc, const GmVector &N, double c) |
| Calculates the stiffness 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 | fillFlowMatrix (const GmElement *e, const GmVector *coord, int ip, GmMatrix &Kc, const GmMatrix &Bp, double c) const |
| Calculates the flow stiffness matrix due to permeability contribution or permeability matrix for element 'e' at the given integration point (coord, ip) storing the result at the Kc matrix. Bp is the strain pore pressure matrix and c a constant equal to w * h * detJ. | |
| virtual void | fillFluidVelocity (const GmElement *e, const GmVector *coord, int ip, GmVector &Vip, const GmVector &Pe, const GmMatrix &Bp) const |
| Evaluates velocity at integration points (it should be improved to consider gravity effect) | |
| virtual void | fillElementPorePressure (const GmElement *e, GmVector &pe) |
| Given an element, fills the vector pe with nodal pore pressure. The vector should have size equal to the number of calculated nodes. | |
| virtual void | gravitySupplyFluid (const GmElement *e, const GmVector *coord, int ip, GmVector &qext_gsf, GmMatrix &Bp, double c) |
| virtual void | fillSourceTermVector (const GmElement *e, const GmVector *coord, int ip, GmVector &St, const GmVector &N, double c) |
| Calculates the source term due the porosity rate of porous eskeleton for element 'e' at the given integration point (coord, ip) storing the result at external vector. N is the shape function vector and c a constant equal to w * h * detJ. | |
| virtual double | fillBpMatrix (const GmShape *shape, const GmVector &ncoord, const GmMatrix &X, const GmVector &N, const GmMatrix &J, GmMatrix &Bp)=0 |
| Given a point 'ncoord', the element coordinate matrix 'X', the point shape functions 'N' and the transformation Jacobian 'J', fills the matrix with cartesian partial derivatives Bp using the provided shape function and returns the scaled jacobian determinant. | |
| virtual void | gravityVector (const GmElement *e, const GmVector *coord, int ip, GmVector &grav) const |
| Returns the gravity accelaration vector. | |
| virtual bool | isAxisymmetric () |
| Returns TRUE only for axisymmetric models. | |
| virtual double | axisymmetricFactor (const GmElement *e, const GmMatrix &X, const GmVector &N) const |
| Returns the factor that should be applied when using axis symetric elements. 1.0 for other etypes. | |
| HMaterialPointAccessors & | hydraulicMaterialPoint () |
| Returns the hydraulic material point accessor. | |
Private Attributes | |
| const char * | _pluginType |
| The plugin type name. | |
| GmValueAccessor * | _pOldAcc |
| Accessor to the old pore pressure. | |
Additional Inherited Members | |
Protected Member Functions inherited from GmpHydraulic | |
| virtual void | calcElementDerivedResultAtPoints (const GmElement *e, int resultId, const GmMatrix &evalPoints, bool evalAtIp, GmMatrix &result) |
| The virtual function used by calcDerivedResults() to effectivelly calculate the velocity (resultId = 0) or the flow (resultId = 1) at the given evaluation points. | |
| void | calcElementVelocityAtPoints (const GmElement *e, const GmMatrix &evalPoints, GmMatrix &v) |
| The function responsible for effectivelly calculating the velocity at the given evaluation points, filling v. | |
| void | calcElementFlowAtPoints (const GmElement *e, const GmMatrix &evalPoints, bool evalAtIp, GmMatrix &q) |
| The function responsible for effectivelly calculating the flow at the given evaluation points, filling q. | |
Protected Attributes inherited from GmpHydraulic | |
| HMaterialPointAccessors | _hmaterialPointAccessor |
| Access to hydraulic material point. | |
| bool | _setInitialCond |
| Sets the initial conditions required by the physics. | |
Basic class for the hydraulic physics plugin object.
|
virtual |
Reimplementation of the common function to init the _hmaterialPointAccessor structure.
Reimplemented from GmpHydraulic.
|
virtual |
Fills nodal pressure of the discontinuity elements inside element e TODO: Consider the discontinuity pressure jump.
Reimplemented from GmpHydraulicEmbeddedFractureConductive.
|
virtual |
Fills the element matrices and vectors for a generic element.
Reimplemented from GmpHydraulicEmbeddedFractureConductive.
|
virtual |
Fills the element matrices and vectors for a enriched element.
Reimplemented from GmpHydraulicEmbeddedFractureConductive.
|
virtual |
Returns a reference for the single Hydraulics attribute map, built when the function is called for the first time.
Reimplemented from GmpHydraulicEmbeddedFractureConductive.
|
inlinevirtual |
Reimplemented from GmpHydraulicEmbeddedFractureConductive.