24#ifndef _GEMA_PLUGIN_HYDROMECHANICAL_EMBEDDED_FRACTURE_H_
25#define _GEMA_PLUGIN_HYDROMECHANICAL_EMBEDDED_FRACTURE_H_
29#include <gmpFemPhysicsCoupled.h>
30#include <gmpHydraulicEmbeddedFracture.h>
31#include <gmpMechanicalSolid.h>
32#include <gmpMechanicalEmbeddedFracture.h>
46 const GmpFemPhysicsCommonMaterialFactory* matFactory,
const GmLogCategory& logger);
76 virtual FemResultType
fillElementData(
const GmElement* e, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
92 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);
95 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);
106 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);
@ NUM_ATTRI_IDS
The number of physics attribute ids above.
Definition gmpCoupledHMFemPhysics.h:73
Hydro-Mechanical Physics with conductive embedded fractures.
Definition gmpHMEmbeddedFracture.h:42
GmValueAccessor * _pOldAcc
Accessor to the old pore pressure.
Definition gmpHMEmbeddedFracture.h:124
GmpMechanicalEmbeddedFracture * _embeddedMechPhys
The mechanical physics providing parameters and matrices to the coupling equation.
Definition gmpHMEmbeddedFracture.h:121
virtual ~GmpHMEmbeddedFracture()
Destructor.
Definition gmpHMEmbeddedFracture.cpp:97
void fillElementOldEnrichedDof(const GmElement *e, GmVector &ue_old)
Fills vector with the enriched dofs from the previous time step.
Definition gmpHMEmbeddedFracture.cpp:193
virtual FemResultType fillEnrichedElementData(const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
Fills the element matrices and vectors for a enriched element.
Definition gmpHMEmbeddedFracture.cpp:367
void fillElementOldDisplacement(const GmElement *e, GmVector &ur)
Given an element, fills the vector ue with nodal old displacement vector. The vector should have size...
Definition gmpHMEmbeddedFracture.cpp:185
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.
Definition gmpHMEmbeddedFracture.cpp:290
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.
Definition gmpHMEmbeddedFracture.cpp:770
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,...
Definition gmpHMEmbeddedFracture.cpp:440
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.
Definition gmpHMEmbeddedFracture.cpp:966
GmValueAccessor * _uOldAcc
Accessor to the old displacement.
Definition gmpHMEmbeddedFracture.h:123
bool updateHMCouplingParameters(const GmElement *e, const GmVector *coord, int ip)
Updates the hydromechanical coupling parameters of the discontinuity element integration points.
Definition gmpHMEmbeddedFracture.cpp:868
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 ] ,...
Definition gmpHMEmbeddedFracture.cpp:567
void updateDiscontinuityAttributes(const GmElement *e, GmVector &dof_e)
Update the cell attributes of the discontinuity elements for each physics.
Definition gmpHMEmbeddedFracture.cpp:489
bool checkAndLoadPrivateData(LuaTable &table)
Overloads default checkAndLoadPrivateData() to be able to setup materials.
Definition gmpHMEmbeddedFracture.cpp:129
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.
Definition gmpHMEmbeddedFracture.cpp:945
virtual bool checkAndLoadDiscontinuitySetAccessors(LuaTable &table)
Reimplementation of the common function to set initial gauss attributes.
Definition gmpHMEmbeddedFracture.cpp:213
bool updateAperture(const GmElement *e, const GmVector *coord, int ip)
Updates the normal aperture of the discontinuity element integration points.
Definition gmpHMEmbeddedFracture.cpp:882
virtual const QVariantMap * physicsMetaDataMap()
Extends the HM physics meta data map to include the discontinuity set and state variables with histor...
Definition gmpHMEmbeddedFracture.cpp:103
embeddedPhysicsAttributeIds
IDs for physics attributes.
Definition gmpHMEmbeddedFracture.h:112
@ NUM_ATTRI_IDS
The number of physics attribute ids above.
Definition gmpHMEmbeddedFracture.h:117
@ UPDATE_DSET_APERTURE
Id of the physics attributes.
Definition gmpHMEmbeddedFracture.h:114
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.
Definition gmpHMEmbeddedFracture.cpp:53
GmpHydraulicEmbeddedFracture * _embeddedHydroPhys
The hydraulic physics providing parameters and matrices to the coupling equation.
Definition gmpHMEmbeddedFracture.h:120
FemResultType updateDiscontinuitySetHMCouplingParameters(const GmElement *e)
Update the discontinuity elements integration points flow status. It updates based on the mechanical ...
Definition gmpHMEmbeddedFracture.cpp:829
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.
Definition gmpHMEmbeddedFracture.cpp:717
bool checkAndLoadAttributeAccessors(LuaTable &nodeTable, LuaTable &cellTable, LuaTable &gaussTable)
Reimplementation of the common function to init the _hmaterialPointAccessor structure.
Definition gmpHMEmbeddedFracture.cpp:151
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.
Definition gmpHMEmbeddedFracture.cpp:506
void assembleElementDofVector(const GmElement *e, GmVector &dof, GmMatrix &dof_u, GmVector &dof_p)
Fills the element dof vector.
Definition gmpHMEmbeddedFracture.cpp:464
FemResultType fillDiscontinuitySetHMCouplingData(const GmElement *e, GmMatrix &Qad, const QMap< int, int > &dNodesGlobalToLocal)
Fills the hydromechanical coupling data from the discontinuity set.
Definition gmpHMEmbeddedFracture.cpp:1067
virtual bool setInitialConditions()
Sets the initial conditions for embedded fracture models.
Definition gmpHMEmbeddedFracture.cpp:232
virtual FemResultType fillElementData(const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
Fills the element matrices and vectors for a generic element.
Definition gmpHMEmbeddedFracture.cpp:247
Dual flow hydraulic 2D & 3D for Quad, Tri, Hex and Tet.
Definition gmpHydroMechanical.h:38
Declaration of the GmpCoupledHMFemPhysics class.
Declaration of the gmpHydroMechanical classes.