Xfem
The Xfem Plugin
Public Member Functions | Protected Types | Protected Member Functions | List of all members
XfemHMCoupled Class Reference

Basic class for the HM coupled Xfem physics plugin object. More...

#include <xfemHMCoupled.h>

Inheritance diagram for XfemHMCoupled:
Inheritance graph
[legend]
Collaboration diagram for XfemHMCoupled:
Collaboration graph
[legend]

Public Member Functions

 XfemHMCoupled (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 ~XfemHMCoupled ()
 Destructor.
 
virtual const QVariantMap * physicsMetaDataMap ()
 Returns a reference for the HydroMechanical coupled Xfem physics attribute map, built when the function is called for the first time.
 
virtual const char * pluginName () const
 
virtual const GmElementDofdofMapping (const GmElement *e) const
 
virtual bool fixedNodalForcesBc (QList< int > &nodes, QList< int > &dof, QList< double > &values) const
 See comments on base class. Fills vectors with prescribed nodal forces - flow.
 
virtual bool fixedNodalDofsBc (QList< int > &nodes, QList< int > &dof, QList< 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 fillElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Fills the element matrices and vectors for a generic elements.
 
- Public Member Functions inherited from XfemMechanic
 XfemMechanic (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 ~XfemMechanic ()
 Destructor.
 
virtual const char * pluginType () const
 
virtual QList< int > changedElements () const
 Fills the list of elements that had their dofs changed since the physics was create.
 
virtual void clearChangedElements ()
 The assembler calls to clear the internal list used to track dof changes.
 
virtual bool fillFixedEnrichedBC (QList< int > &nodes, QList< int > &dof, QList< double > &values) const
 
virtual bool dofByElement (bool *fixed, bool *addOnly, bool *trackChanges) const
 

Protected Types

enum  xfemHMStateVarIds {
  P_ID = XfemMechanic::NUM_STATEVAR_IDS, PA1_ID, PA2_ID, PA3_ID,
  PF_ID, PFNW_ID, T_ID, Ta1_ID,
  Td_ID, NUM_STATEVAR_IDS
}
 IDs for Mechanical xfem state vars. More...
 
enum  xfemGaussAttributeIds { Sw_GA_ID, NUM_GA_IDS }
 IDs for physics Gauss attributes. More...
 
enum  xfemHMBoundaryConditionIds {
  FIXED_P_BC_ID = XfemMechanic::NUM_BC_IDS, FIXED_Q_BC_ID, FIXED_PA1_BC_ID, FIXED_PA2_BC_ID,
  FIXED_QA2_BC_ID, FIXED_PA3_BC_ID, FIXED_PF_BC_ID, FIXED_QF_BC_ID,
  FIXED_PFNW_BC_ID, FIXED_QFNW_BC_ID, FIXED_T_BC_ID, FIXED_Ta1_BC_ID,
  FIXED_Td_BC_ID, FIXED_HF_BC_ID, CONVECTIVE_BC_ID, POINT_GENERATION_BC_ID,
  NUM_BC_IDS
}
 IDs for accepted boundary condition types. More...
 
enum  xfemHMBoundaryConditionValueIds {
  BC_P_ID = XfemMechanic::NUM_BCV_IDS, BC_QW_ID, BC_PA1_ID, BC_PA2_ID,
  BC_QA2_ID, BC_PA3_ID, BC_PF_ID, BC_QFW_ID,
  BC_PFNW_ID, BC_QFNW_ID, BC_T_ID, BC_Ta1_ID,
  BC_Td_ID, BC_Q_ID, BC_QDIR_ID, BC_H_ID,
  BC_TA_ID, BC_G_ID, BC_POS_ID, NUM_BCV_IDS
}
 IDs for property values from accepted boundary condition types. More...
 
- Protected Types inherited from XfemMechanic
enum  xfemStateVarIds { U_ID, A_ID, NUM_STATEVAR_IDS }
 IDs for Mechanical xfem state vars. More...
 
enum  xfemPhysicsAttributeIds { ISOPARAMETRIC_ID, FIXEDENRICHEDDOF_ID, NUM_ATTRI_IDS }
 IDs for physics attributes. More...
 
enum  xfemBoundaryConditionIds { FIXED_A_BC_ID, NUM_BC_IDS }
 IDs for accepted boundary condition types. More...
 
enum  xfemBoundaryConditionValueIds { BC_AX_ID, BC_AY_ID, BC_AZ_ID, NUM_BCV_IDS }
 IDs for property values from accepted boundary condition types. More...
 

Protected Member Functions

virtual bool checkAndLoadPrivateData (LuaTable &table)
 Overloads default checkAndLoadPrivateData() to be able to setup materials.
 
virtual bool checkAndLoadAttributeAccessors (LuaTable &nodeTable, LuaTable &gaussTable)
 Reimplementation of the common function to init the _hmaterialPointAccessor structure.
 
virtual bool fillElementDataMPNIT (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Fills the element matrices and vectors for a generic elements.
 
virtual bool fillElementDataNIT (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Fills the element matrices and vectors for a generic elements.
 
virtual bool fillElementDataMP (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Fills the element matrices and vectors for a generic elements.
 
void fillElementDisplacements (const GmElement *e, GmVector &ue, const int &nEnrich)
 See comments on base class. Fills the vector ue with nodal displacements.
 
void fillElementPorePressure (const GmElement *e, GmVector &pe, GmVector &pf, bool ghostNodes, const QList< int > &pfList)
 Given an element, fills the vector pe with nodal pore pressure. The vector should have size equal to the number of calculated nodes.
 
void fillElementTemperature (const GmElement *e, GmVector &pe, GmVector &pf, bool ghostNodes, const QList< int > &pfList)
 Given an element, fills the vector Te with nodal temperatures. The vector should have size equal to the number of calculated nodes.
 
void fillElementCapillaryPressure (const GmElement *e, GmVector &pe, GmVector &pf, bool ghostNodes, const QList< int > &pfList)
 Given an element, fills the vector pe with nodal capillary pressure. The vector should have size equal to the number of calculated nodes.
 
void fillEnhancedBuMatrix (const GmElement *e, const GmShape *shape, const GmVector &ncoord, const GmMatrix &X, const GmMatrix &J, GmMatrix &Bu, const QList< int > &gaussLevelSet, const int &nEnrich, const GmVector &nodes, GmElementDof *dofMap, XfemEnrichedElementData *exData, const int &gaussIP)
 Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point. More...
 
void fillEnhancedBuJumpMatrix (const GmElement *e, const GmShape *shape, const GmVector &ncoord, const GmMatrix &J, GmMatrix &Bu, const QList< int > &TopLevelSet, const QList< int > &BottomLevelSet, const int &nEnrich, const GmVector &nodes, GmElementDof *dofMap, XfemEnrichedElementData *exData, const int &iSubCrack)
 Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point. More...
 
void fillEnhancedBpJumpMatrix (const GmElement *e, const GmShape *shape, const GmVector &ncoord, const GmMatrix &J, GmMatrix &Bp, const QList< int > &TopLevelSet, const QList< int > &BottomLevelSet, const int &nEnrich, GmElementDof *dofMap, XfemEnrichedElementData *exData, const int &iSubCrack)
 Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point. More...
 
void fillEnhancedNpMatrix (const GmElement *e, GmVector &Np, const GmVector &N, const QList< int > &gaussLevelSet, const int &nEnrich, GmElementDof *dofMap, XfemEnrichedElementData *exData, const int &gaussIP)
 Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point. More...
 
void fillEnhancedNptopMatrix (const GmElement *e, GmVector &Np, const GmVector &N, const QList< int > &gaussLevelSet, const int &nEnrich, GmElementDof *dofMap, XfemEnrichedElementData *exData, const int &iSubCrack)
 Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point. More...
 
void fillEnhancedNpbotMatrix (const GmElement *e, GmVector &Np, const GmVector &N, const QList< int > &gaussLevelSet, const int &nEnrich, GmElementDof *dofMap, XfemEnrichedElementData *exData, const int &iSubCrack)
 Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point. More...
 
void fillEnhancedNutopMatrix (const GmElement *e, GmMatrix &Nu, const GmVector &N, const QList< int > &gaussLevelSet, const int &nEnrich, const GmVector &nodes, GmElementDof *dofMap, XfemEnrichedElementData *exData, const int &iSubCrack)
 Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point. More...
 
void fillEnhancedNubotMatrix (const GmElement *e, GmMatrix &Nu, const GmVector &N, const QList< int > &gaussLevelSet, const int &nEnrich, const GmVector &nodes, GmElementDof *dofMap, XfemEnrichedElementData *exData, const int &iSubCrack)
 Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point. More...
 
void fillEnhancedNuJumpMatrix (const GmElement *e, GmMatrix &Nu, const GmVector &N, const QList< int > &BottomLevelSet, const QList< int > &TopLevelSet, const int &nEnrich, const GmVector &nodes, GmElementDof *dofMap, XfemEnrichedElementData *exData, const int &iSubCrack)
 Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point. More...
 
void fillEnhancedNpJumpMatrix (const GmElement *e, GmMatrix &Np, const GmVector &N, const QList< int > &BottomLevelSet, const QList< int > &TopLevelSet, const int &nEnrich, GmElementDof *dofMap, XfemEnrichedElementData *exData, const int &iSubCrack)
 Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point. More...
 
void tipDOFTreat (const int &nelem, GmVector &nodes)
 treat tip degrees of freedom
 
void shapeValuesBarElem (double xi, GmVector &N)
 Returns the shape function evaluated at Xi. More...
 
void unitVectSegment (const GmMatrix &Xg, GmMatrix &uVec, GmMatrix &uVec2, GmMatrix &uVec3, GmMatrix &ROT)
 
virtual void fillStandardDof (const GmElement *e, QList< int > &iUe, QList< 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}. More...
 
virtual void fillEnhancedDof (const XfemElement *xe, QList< int > &iUe, QList< int > &iPe, QList< int > &iPf, const int &np)
 Fills the position index with the degreee of freedom, both the mechanical and hydraulic physics. the implementation supports order of the defined state variables i.e {U, P} or {P, U}. More...
 
virtual void fillStandardDofMP (const GmElement *e, QList< int > &iUe, QList< int > &iPw, QList< int > &iPc)
 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}. More...
 
virtual void fillEnhancedDofMP (const XfemElement *xe, QList< int > &iUe, QList< int > &iPw, QList< int > &iPc, QList< int > &iPwd, QList< int > &iPcd, const int &np)
 Fills the position index with the degreee of freedom, both the mechanical and hydraulic physics. the implementation supports order of the defined state variables i.e {U, P} or {P, U}. More...
 
virtual void fillStandardDofNIT (const GmElement *e, QList< int > &iUe, QList< int > &iPw, QList< int > &iPc)
 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}. More...
 
virtual void fillEnhancedDofNIT (const XfemElement *xe, QList< int > &iUe, QList< int > &iPw, QList< int > &iPc, QList< int > &iPwd, QList< int > &iPcd, const int &np)
 Fills the position index with the degreee of freedom, both the mechanical and hydraulic physics. the implementation supports order of the defined state variables i.e {U, P} or {P, U}. More...
 
virtual void fillStorageCompMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Sc, const GmVector &Np, const 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. More...
 
virtual void fillCrackStorageCompMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Sc, const GmVector &Np, const 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. More...
 
virtual void fillHeatCapacityMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Sc, const GmVector &Np, const double &c)
 Calculates Heat Capacity 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. More...
 
virtual void fillCrackHeatCapacityMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Sc, const GmVector &Np, const double &c, double &wn)
 Calculates Heat Capacity 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. More...
 
virtual void fillThermalExpansionMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Sc, const GmVector &Np, const double &c)
 Calculates Thermal Expansion 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. More...
 
virtual void fillCrackThermalExpansionMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Sc, const GmVector &Np, const double &c, double &wn)
 Calculates Thermal Expansion 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. More...
 
virtual void fillStorageCompMatrixMP (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Cww, GmMatrix &Cwc, GmMatrix &Ccc, GmMatrix &Ccw, const GmVector &Np, const double &c, const double &sw)
 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. More...
 
virtual void fillCrackStorageCompMatrixMP (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Cww, GmMatrix &Cwc, GmMatrix &Ccc, GmMatrix &Ccw, const GmVector &Np, const double &c, const double &sw, double &wn)
 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. More...
 
virtual void fillCouplingMecHydMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Lup, const GmVector &Np, const GmMatrix &Bu, const double &c)
 Calculates the stiffness matrix of the mechanical- hydraulic coupling.
 
virtual void fillCouplingCrackMecHydMatrix (const GmElement *e, const GmVector *coord, const int &ip, const double &c2, const GmVector &Np, GmMatrix &Qpfu, const GmVector &v_n, const GmMatrix &NuJump)
 Calculates the stiffness matrix of the mechanical- hydraulic coupling.
 
virtual void fillCouplingCrackHydMecMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Epfu, const GmVector &Np, const GmMatrix &Bu, const GmVector &v_t, const double &c2, double &wn, GmMatrix &Qpfu, const GmVector &v_n, const GmMatrix &NuJump)
 Calculates the stiffness matrix of the mechanical- hydraulic coupling.
 
virtual void fillCouplingHydMecMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Lup, const GmVector &Np, const GmMatrix &Bu, const double &c)
 Calculates the stiffness matrix of the hydraulic - mechanical coupling.
 
virtual void fillCouplingThermoMecMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Lup, const GmVector &Np, const GmMatrix &Bu, const double &c, const double &Tg)
 Calculates the stiffness matrix of the Thermo - mechanical coupling.
 
virtual void fillCouplingCrackThermoMecMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Lup, const GmVector &Np, const GmMatrix &Bu, const double &c, const double &Tg, const double &wn)
 Calculates the stiffness matrix of the Thermo - mechanical coupling.
 
void fillEnhancedBpMatrix (const GmElement *e, const GmShape *shape, const GmVector &ncoord, const GmMatrix &X, const GmMatrix &J, const GmMatrix &B, GmMatrix &Bp, const QList< int > &gaussLevelSet, const int &nEnrich, GmElementDof *dofMap, XfemEnrichedElementData *exData, const int &gaussIP)
 Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point. More...
 
void fillFlowMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Kc, const GmMatrix &Bp, const double &c)
 
void fillConvectiveMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Kc, const GmMatrix &Bp, const GmMatrix &Np, const double &c, const GmVector &pe)
 
void fillConvectiveMatrix2 (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Kc, const GmMatrix &Bp, const double &tg, const double &c)
 
void fillAdvectiveMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Kc, const GmMatrix &Bp, const double &c)
 
void fillCrackConvectiveMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Kc, const GmMatrix &Bp, const GmMatrix &Np, const double &c, double &wn, double &kfd, const GmVector &pfe)
 
void fillCrackConvectiveMatrix2 (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Kc, const GmMatrix &Bp, const double &tg, const double &c, double &wn, double &kfd)
 
void fillCrackAdvectiveMatrix (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Kc, const GmMatrix &Bp, const double &c, double &wn)
 
void fillFlowMatrixMP (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Kc, const GmMatrix &Bp, const double &c, const double &krw, const double &krn)
 
void fillFlowMatrixMP2 (const GmElement *e, const GmVector *coord, const int &ip, GmMatrix &Kc, const GmMatrix &Bp, const double &c, const double &krn)
 
virtual bool assemblyElemDampingMatrix (const GmElement *e, GmMatrix &elemC, const GmMatrix &Lpu, const GmMatrix &Sc, const QList< int > &iUe, const QList< int > &iPe, const int &nPf, const int &numDof, const int &np)
 
virtual bool assemblyElemDampingMatrixNIT (const GmElement *e, GmMatrix &elemC, const GmMatrix &Lpu, const GmMatrix &Sc, const GmMatrix &Rt, const GmMatrix &Ct, const GmMatrix &Qtu, const QList< int > &iUe, const QList< int > &iPe, const QList< int > &iTe, const int &nPf, const int &numDof, const int &np)
 
virtual bool assemblyElemDampingMatrixMP (const GmElement *e, GmMatrix &elemC, const GmMatrix &Lpu, const GmMatrix &Cww, const GmMatrix &Cwc, const GmMatrix &Ccc, const GmMatrix &Ccw, const QList< int > &iUe, const QList< int > &iPw, const QList< int > &iPc, const int &nPf, const int &numDof, const int &np, const double &sw)
 
virtual bool assemblyCrackDampingMatrix (const GmElement *e, GmMatrix &elemC, const GmMatrix &Qf, const QList< int > &iUe, const QList< int > &iPe, const QList< int > &iPf, const QList< int > &pfList, const int &nPf, const int &numDof, const int &np)
 
virtual bool assemblyCrackDampingMatrixNIT (const GmElement *e, GmMatrix &elemC, const GmMatrix &Qf, const QList< int > &iUe, const QList< int > &iPe, const QList< int > &iPf, const QList< int > &iTf, const QList< int > &pfList, const int &nPf, const int &numDof, const int &np, const GmMatrix &Cwdwd, const GmMatrix &Rtdtd, const GmMatrix &Cwdtd)
 
virtual bool assemblyCrackDampingMatrixMP (const GmElement *e, GmMatrix &elemC, const GmMatrix &Qf, const QList< int > &iUe, const QList< int > &iPe, const QList< int > &iPf, const QList< int > &pfList, const int &nPf, const int &numDof, const int &np, const QList< int > &iPc, const QList< int > &iPcd, const double &sw, const GmMatrix &Cwdwd, const GmMatrix &Cwdcd, const GmMatrix &Ccdcd, const GmMatrix &Ccdwd)
 
virtual bool assemblyElemStiffnessMatrix (const GmElement *e, GmMatrix &elemK, const GmMatrix &Kep, const GmMatrix &Lup, const GmMatrix &Kc, const QList< int > &iUe, const QList< int > &iPe, const int &nPf, const int &numDof, const int &np)
 
virtual bool assemblyElemStiffnessMatrixNIT (const GmElement *e, GmMatrix &elemK, const GmMatrix &Kep, const GmMatrix &Lup, const GmMatrix &Kc, const GmMatrix &Qut, const GmMatrix &Qtw, const GmMatrix &Mt, const GmMatrix &Ot, const QList< int > &iUe, const QList< int > &iPe, const QList< int > &iTe, const int &nPf, const int &numDof, const int &np)
 
virtual bool assemblyElemStiffnessMatrixMP (const GmElement *e, GmMatrix &elemK, const GmMatrix &Kep, const GmMatrix &Lup, const GmMatrix &Hww, const GmMatrix &Hcc, const QList< int > &iUe, const QList< int > &iPw, const QList< int > &iPc, const int &nPf, const int &numDof, const int &np, const double &sw)
 
virtual bool assemblyCrackStiffnessMatrix (const GmElement *e, GmMatrix &elemK, const GmMatrix &Qupf, const GmMatrix &L1, const GmMatrix &L2, const GmMatrix &L3, const GmMatrix &Hf, const GmMatrix &Kfr, const QList< int > &iUe, const QList< int > &iPe, const QList< int > &iPf, const QList< int > &pfList, const int &nPf, const int &numDof, const int &np)
 
virtual bool assemblyCrackStiffnessMatrixNIT (const GmElement *e, GmMatrix &elemK, const GmMatrix &Qupf, const GmMatrix &L1, const GmMatrix &L2, const GmMatrix &L3, const GmMatrix &Hf, const GmMatrix &Kfr, const QList< int > &iUe, const QList< int > &iPe, const QList< int > &iTe, const QList< int > &iPf, const QList< int > &iTd, const QList< int > &pfList, const int &nPf, const int &numDof, const int &np, const GmMatrix &Mtdtd, const GmMatrix &Otdtd, const GmMatrix &Qtdwd, const GmMatrix &Ltt, const GmMatrix &Lttd, const GmMatrix &Ltdtd, const GmMatrix &Qutd)
 
virtual bool assemblyCrackStiffnessMatrixMP (const GmElement *e, GmMatrix &elemK, const GmMatrix &Qupf, const GmMatrix &L1, const GmMatrix &L2, const GmMatrix &L3, const GmMatrix &Hf, const GmMatrix &Kfr, const GmMatrix &Hcdcd, const QList< int > &iUe, const QList< int > &iPe, const QList< int > &iPf, const QList< int > &pfList, const int &nPf, const int &numDof, const int &np, const QList< int > &iPc, const QList< int > &iPcd, const double &swd)
 
virtual bool getPorePressureGaussPoint (const GmElement *e, const GmVector *coord, const int &ip, GmVector &Pg, const GmVector &Np, const GmVector &pe)
 
virtual bool getTemperatureGaussPoint (const GmElement *e, const GmVector *coord, const int &ip, double &Pg, const GmVector &Np, const GmVector &pe)
 
virtual bool getSaturationAndRelativePermeability (const GmElement *e, const GmVector *coord, const int &ip, GmVector &Pg, double &Np, double &pe, double &pa)
 
virtual void assemblyInternalForceVector (const GmElement *e, GmMatrix &elemFi, const GmVector &Fint_St, const GmVector &Fint_Pp, const QList< int > &iUe, const QList< int > &iPe, const int &nPf, const int &numDof, const int &np)
 
virtual void assemblyInternalForceVectorNIT (const GmElement *e, GmMatrix &elemFi, const GmVector &Fint_St, const GmVector &Fint_Pp, const GmVector &Fint_T, const QList< int > &iUe, const QList< int > &iPe, const QList< int > &iTe, const int &nPf, const int &numDof, const int &np)
 
virtual void assemblyInternalForceVectorMP (const GmElement *e, GmMatrix &elemFi, const GmVector &Fint_St, const GmVector &Fint_Pw, const GmVector &Fint_Pc, const QList< int > &iUe, const QList< int > &iPw, const QList< int > &iPc, const int &nPf, const int &numDof, const int &np)
 
virtual void assemblyCrackInternalForceVector (const GmElement *e, GmMatrix &elemFi, const GmVector &Fint_St, const GmVector &Fint_Pp, const GmVector &Fint_Hyd, const QList< int > &iUe, const QList< int > &iPe, const QList< int > &iPf, const QList< int > &pfList, const int &nPf, const int &numDof, const int &np)
 
virtual void assemblyCrackInternalForceVectorNIT (const GmElement *e, GmMatrix &elemFi, const GmVector &Fint_St, const GmVector &Fint_Pp, const GmVector &Fint_Te, const GmVector &Fint_pf, const GmVector &Fint_Tf, const QList< int > &iUe, const QList< int > &iPe, const QList< int > &iTe, const QList< int > &iPf, const QList< int > &iTf, const QList< int > &pfList, const int &nPf, const int &numDof, const int &np)
 
virtual void assemblyCrackInternalForceVectorMP (const GmElement *e, GmMatrix &elemFi, const GmVector &Fint_St, const GmVector &Fint_Pw, const GmVector &Fint_Pc, const QList< int > &iUe, const QList< int > &iPe, const QList< int > &iPf, const QList< int > &pfList, const int &nPf, const int &numDof, const int &np, const QList< int > &iPc, const QList< int > &iPcd, const GmVector &Fint_Pwd, const GmVector &Fint_Pcd)
 
virtual bool getCrackNodePair (XfemEnrichedElementData *exData, QList< QList< int >> &pfNodes)
 
virtual bool insertionSortWORepeatedint (QList< int > &a, const double &tol)
 
virtual bool insertionSortint (QList< int > &tVec)
 
void fillFractureRotationMatrix (const GmElement *e, const GmShape *shp, GmMatrix Je, GmMatrix &R)
 
virtual bool fillNaturalCrackStiffnessMatrix (const GmElement *e, GmMatrix &Dep, GmVector coord, const int &ip, const GmVector &S_tn, const GmVector &Etn_old, const GmVector &v_w_tn, const GmMatrix &ROT, GmMatrix &D_xy, bool open)
 
virtual bool fillCohesiveCrackStiffnessMatrix (const GmElement *e, GmMatrix &Dep, GmVector coord, const int &ip, const GmVector &nrd, const GmVector &trd, const GmVector &Etn_old, const GmVector &v_w_tn, const GmVector &sold, const GmMatrix &ROT, GmMatrix &D_xy, const double &rockStrength, bool open)
 
virtual bool naturalFractureReturnMapping (const GmElement *e, XfemEnrichedElementData *exData, const GmVector &sold, const GmMatrix &Dep, const GmVector &enew, const GmVector &eold, GmVector &Stn_new, const GmMatrix &ROT, GmVector &S_w_xy, bool open, const int &iFracSubElement, const GmVector &ip, const int &k)
 
virtual bool cohesiveFractureReturnMapping (const GmElement *e, const GmVector &sold, const GmMatrix &Dep, const GmVector &enew, const GmVector &eold, GmVector &Stn_new, const GmMatrix &ROT, GmVector &S_w_xy, const double &rockStrength, bool open, const GmVector &ip, const int &k)
 
virtual bool splitJoinTensorToInterface (GmVector &Tensor, GmVector &Cohesive, bool type)
 Split tensor to interface or Join interface to tensor type = true ==> split tensor to interface components type = false ==> join interface components to tensor.
 
- Protected Member Functions inherited from XfemMechanic
virtual bool beforeElementStiffnessLoop (const GmpFemMatrixSet &elemMatrices, const GmpFemVectorSet &elemVectors)
 
void fillEnhancedNuJumpMatrix (const GmElement *e, GmMatrix &Nu, const GmVector &N, const QList< int > &BottomLevelSet, const QList< int > &TopLevelSet, const GmVector &nodes, GmElementDof *dofMap, XfemEnrichedElementData *exData, const int &iSubCrack)
 Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point. More...
 
void fillEnhancedBuMatrix (const GmElement *e, const GmShape *shape, const GmVector &ncoord, const GmMatrix &X, const GmMatrix &J, GmMatrix &Bu, const QList< int > &gaussLevelSet, const int &nEnrich, const GmVector &nodes, GmElementDof *dofMap, XfemEnrichedElementData *exData, const int &gaussIP)
 Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point. More...
 
virtual void fillEnhancedDof (const XfemElement *xe, QList< int > &iUe, const int &np)
 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}. More...
 
void tipDOFTreat (const int &nelem, GmVector &nodes)
 treat tip degrees of freedom
 
void fillNodalLevelSetMatrix (GmMatrix X, GmMatrix Xg, GmMatrix &H)
 Compute nodal levelset function (H) The minimum distance between a point(nodes or integration point) and a segment (fracture) is determined. This function returns the signed distance function used to enrich the element for XFEM. More...
 
void fillGaussLevelSetMatrix (GmMatrix X, GmMatrix Xg, GmMatrix &H)
 Compute Gauss levelset function (H) The minimum distance between a point(integration point) and a segment (fracture) is determined. This function returns the signed distance function used to enrich the element for XFEM. More...
 
void fillInteractingCraksNodalLevelSets (const GmElement *e, XfemEnrichedElementData *exData, int nEnrich, int nCracks, QList< double >crackIndex, QList< GmMatrix > &nodalLevelSet)
 computation of Additional enrichment fuctions for cracks intersection considering element nodes and integration point
 
void fillInteractingCraksGaussLevelSets (const GmElement *e, XfemEnrichedElementData *exData, int nEnrich, int nCracks, QList< double >crackIndex, QList< GmMatrix > &gaussLevelSet)
 computation of Additional enrichment fuctions for cracks intersection considering element nodes and integration point
 
virtual bool insertionSortWORepeatedint (QList< int > &a, double tol)
 
void unitVectSegment (const GmMatrix &Xg, GmMatrix &uVec, GmMatrix &uVec2, GmMatrix &uVec3, GmMatrix &ROT)
 
virtual bool assemblyCrackStiffnessMatrix (const GmElement *e, GmMatrix &elemK, const GmMatrix &Kfr, const QList< int > &iUe, const QList< int > &pfList, const int &numDof)
 
virtual void assemblyCrackInternalForceVector (const GmElement *e, GmMatrix &elemFi, const GmVector &Fint_St, const QList< int > &iUe, const QList< int > &pfList, const int &numDof)
 
virtual GmGaussAccessorcreateGaussAttributeAccessor (GmElementMesh *mesh, QString id, int snum, bool locked, Unit desiredUnit, const GmLogCategory &logger) const
 Overrides the standard GmpFemPhysics::createGaussAttributeAccessor() implementation to create an enriched accessor. In this way, Gauss accessors recovered by GmpFemPhysicsCommon will be enriched accessors.
 

Additional Inherited Members

- Protected Attributes inherited from XfemMechanic
const char * _pluginType
 The plugin type name.
 
GmMatrix _Dsn
 Constitutive tangent matrix (2 x 2)
 
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

Basic class for the HM coupled Xfem physics plugin object.

This physics plugin calculates deformations, stress and pore pressure values using

the HydroMechanical coupled extended finite element method so called as HM-XFEM

Return the fracture rotation matrix

Return a list with the pair of ghost nodes of each fracture segment contained in this element

Member Enumeration Documentation

◆ xfemGaussAttributeIds

IDs for physics Gauss attributes.

Enumerator
Sw_GA_ID 

Base Id for Gauss attribute(s) used to store the wetting fluid saturation.

NUM_GA_IDS 

The number of Gauss attribute ids above.

◆ xfemHMBoundaryConditionIds

IDs for accepted boundary condition types.

Enumerator
FIXED_P_BC_ID 

Id for fixed node pore pressure boundary condition of the wetting fluid.

FIXED_Q_BC_ID 

Id for fixed node flow boundary condition of the wetting fluid.

FIXED_PA1_BC_ID 

Id for fixed node enriched pressure boundary condition of the wetting fluid.

FIXED_PA2_BC_ID 

Id for fixed node pore pressure boundary condition of the non-wetting fluid.

FIXED_QA2_BC_ID 

Id for fixed node flow boundary condition of the non-wetting fluid.

FIXED_PA3_BC_ID 

Id for fixed node enriched pressure boundary condition of the non-wetting fluid.

FIXED_PF_BC_ID 

Id for fixed node fracture pressure boundary condition of the wetting fluid.

FIXED_QF_BC_ID 

Id for fixed node fracture flow boundary condition of the wetting fluid.

FIXED_PFNW_BC_ID 

Id for fixed node fracture pressure boundary condition of the non-wetting fluid.

FIXED_QFNW_BC_ID 

Id for fixed node fracture flow boundary condition of the non-wetting fluid.

FIXED_T_BC_ID 

Id for fixed temperature boundary condition.

FIXED_Ta1_BC_ID 

Id for fixed enriched temperature boundary condition.

FIXED_Td_BC_ID 

Id for fixed fracture temperature boundary condition.

FIXED_HF_BC_ID 

Id for fixed heat flux boundary condition.

CONVECTIVE_BC_ID 

Id for convective boundary condition.

POINT_GENERATION_BC_ID 

Id for point generation boundary condition.

NUM_BC_IDS 

The number of boundary conditions ids above.

◆ xfemHMBoundaryConditionValueIds

IDs for property values from accepted boundary condition types.

Enumerator
BC_P_ID 

Nodal pore pressure for fixed node pore pressure boundary condition of the wetting fluid.

BC_QW_ID 

Nodal pore flow for fixed node pore flow boundary condition of the wetting fluid.

BC_PA1_ID 

Nodal enriched pressure for fixed node enriched pressure boundary condition of the wetting fluid.

BC_PA2_ID 

Nodal pore pressure for fixed node pore pressure boundary condition of the non-wetting fluid.

BC_QA2_ID 

Nodal pore flow for fixed node pore flow boundary condition of the non-wetting fluid.

BC_PA3_ID 

Nodal enriched pressure for fixed node enriched pressure boundary condition of the non-wetting fluid.

BC_PF_ID 

Nodal fracture pressure for fixed node fracture pressure boundary condition of the wetting fluid.

BC_QFW_ID 

Nodal node fracture flow for fixed node fracture flow boundary condition of the wetting fluid.

BC_PFNW_ID 

Nodal fracture pressure for fixed node fracture pressure boundary condition of the non-wetting fluid.

BC_QFNW_ID 

Nodal node fracture flow for fixed node fracture flow boundary condition of the non-wetting fluid.

BC_T_ID 

Nodal temperature for fixed temperature boundary condition.

BC_Ta1_ID 

Nodal temperature for fixed enriched temperature boundary condition.

BC_Td_ID 

Nodal temperature for fixed fracture temperature boundary condition.

BC_Q_ID 

Heat flux for fixed heat flux boundary condition.

BC_QDIR_ID 

Heat flux direction for fixed heat flux boundary condition.

BC_H_ID 

Heat transfer coefficient for convective boundary condition.

BC_TA_ID 

Ambient temperature for convective boundary condition.

BC_G_ID 

Point generation rate for point generation boundary condition.

BC_POS_ID 

Point position for point generation boundary condition.

NUM_BCV_IDS 

The number of boundary conditions value ids above.

◆ xfemHMStateVarIds

IDs for Mechanical xfem state vars.

Enumerator
P_ID 

Id for retrieving the accessor to the pore pressure state var of the wetting fluid.

PA1_ID 

Id for retrieving the accessor to the enriched pressure state var of the wetting fluid.

PA2_ID 

Id for retrieving the accessor to the pore pressure state var of the non-wetting fluid.

PA3_ID 

Id for retrieving the accessor to the enriched pressure state var of the non-wetting fluid.

PF_ID 

Id for retrieving the accessor to the fracture pressure state var of the wetting fluid.

PFNW_ID 

Id for retrieving the accessor to the fracture pressure state var of the non-wetting fluid.

T_ID 

Id for retrieving the accessor to the Temperature state var.

Ta1_ID 

Id for retrieving the accessor to the Enriched Temperature state var.

Td_ID 

Id for retrieving the accessor to the Fracture Temperature state var.

NUM_STATEVAR_IDS 

The number of state var ids above.

Member Function Documentation

◆ dofMapping()

const GmElementDof * XfemHMCoupled::dofMapping ( const GmElement e) const
virtual

The set of standard displacement dofs (u)

The set of enriched displacement dofs

adds the standard pore pressure dofs

adds the enriched pore pressure dofs

The set of enriched pore pressure dofs

adds the standard pore pressure dofs

The set of standard displacement dofs (u)

The set of enriched displacement dofs

adds the standard pore pressure dofs

The set of enriched pore pressure dofs

The set of enriched pore pressure dofs

adds the standard temperature dofs

The set of enriched temperature dofs

Reimplemented from XfemMechanic.

◆ fillCrackHeatCapacityMatrix()

void XfemHMCoupled::fillCrackHeatCapacityMatrix ( const GmElement e,
const GmVector coord,
const int &  ip,
GmMatrix Sc,
const GmVector Np,
const double &  c,
double &  wn 
)
protectedvirtual

Calculates Heat Capacity 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.

Returns Rt = CTavg * c * Nt * Nt.t(), where c should be equal to w * h * detJ

◆ fillCrackStorageCompMatrix()

void XfemHMCoupled::fillCrackStorageCompMatrix ( const GmElement e,
const GmVector coord,
const int &  ip,
GmMatrix Sc,
const GmVector Np,
const double &  c 
)
protectedvirtual

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.

This function can operate either in an iso parametric setting (Sc = n x n) or in a super parametric setting (Sc = np x np) where n is the number of element nodes and np the number of element corner nodes.

Returns Sc = N * ((Biot - porosity)/Kss + porosity/Kww) * N.t() * c, where c should be equal to w * h * detJ

◆ fillCrackStorageCompMatrixMP()

void XfemHMCoupled::fillCrackStorageCompMatrixMP ( const GmElement e,
const GmVector coord,
const int &  ip,
GmMatrix Cww,
GmMatrix Cwc,
GmMatrix Ccc,
GmMatrix Ccw,
const GmVector Np,
const double &  c,
const double &  sw,
double &  wn 
)
protectedvirtual

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.

This function can operate either in an iso parametric setting (Sc = n x n) or in a super parametric setting (Sc = np x np) where n is the number of element nodes and np the number of element corner nodes.

Returns Sc = N * ((Biot - porosity)/Kss + porosity/Kww) * N.t() * c, where c should be equal to w * h * detJ

◆ fillCrackThermalExpansionMatrix()

void XfemHMCoupled::fillCrackThermalExpansionMatrix ( const GmElement e,
const GmVector coord,
const int &  ip,
GmMatrix Sc,
const GmVector Np,
const double &  c,
double &  wn 
)
protectedvirtual

Calculates Thermal Expansion 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.

Returns // Qt = Beta * c * Nt * Nt.t(), where c should be equal to w * h * detJ

◆ fillEnhancedBpJumpMatrix()

void XfemHMCoupled::fillEnhancedBpJumpMatrix ( const GmElement e,
const GmShape shape,
const GmVector ncoord,
const GmMatrix J,
GmMatrix Bp,
const QList< int > &  TopLevelSet,
const QList< int > &  BottomLevelSet,
const int &  nEnrich,
GmElementDof dofMap,
XfemEnrichedElementData exData,
const int &  iSubCrack 
)
protected

Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point.

See the description of fillStiffnessMatrix() for in depth details.

Param e The element where we are calculating the matrix Param ip Integration point (xi, eta) where the matrix will be calculated Param X Node coordinates X matrix used to calculate the Jacobian matrix. Size = n x 2. Param Hn Matrix of nodal level set values Param Hip Matrix of gauss point level set value Param Bu Filled with the calculated enhanced strain displacement matrix. Khoei, XFEM Chapter 2, Section 2.7, Equation 2.73. Size = 4 x 4n Param detJ Filled by the function with the determinant of the Jacobian matrix

◆ fillEnhancedBpMatrix()

void XfemHMCoupled::fillEnhancedBpMatrix ( const GmElement e,
const GmShape shape,
const GmVector ncoord,
const GmMatrix X,
const GmMatrix J,
const GmMatrix B,
GmMatrix Bp,
const QList< int > &  gaussLevelSet,
const int &  nEnrich,
GmElementDof dofMap,
XfemEnrichedElementData exData,
const int &  gaussIP 
)
protected

Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point.

See the description of fillStiffnessMatrix() for in depth details.

Param e The element where we are calculating the matrix Param ip Integration point (xi, eta) where the matrix will be calculated Param X Node coordinates X matrix used to calculate the Jacobian matrix. Size = n x 2. Param Hn Matrix of nodal level set values Param Hip Matrix of gauss point level set value Param Bu Filled with the calculated enhanced strain displacement matrix. Khoei, XFEM Chapter 2, Section 2.7, Equation 2.73. Size = 4 x 4n Param detJ Filled by the function with the determinant of the Jacobian matrix

◆ fillEnhancedBuJumpMatrix()

void XfemHMCoupled::fillEnhancedBuJumpMatrix ( const GmElement e,
const GmShape shape,
const GmVector ncoord,
const GmMatrix J,
GmMatrix Bu,
const QList< int > &  TopLevelSet,
const QList< int > &  BottomLevelSet,
const int &  nEnrich,
const GmVector nodes,
GmElementDof dofMap,
XfemEnrichedElementData exData,
const int &  iSubCrack 
)
protected

Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point.

See the description of fillStiffnessMatrix() for in depth details.

Param e The element where we are calculating the matrix Param ip Integration point (xi, eta) where the matrix will be calculated Param X Node coordinates X matrix used to calculate the Jacobian matrix. Size = n x 2. Param Hn Matrix of nodal level set values Param Hip Matrix of gauss point level set value Param Bu Filled with the calculated enhanced strain displacement matrix. Khoei, XFEM Chapter 2, Section 2.7, Equation 2.73. Size = 4 x 4n Param detJ Filled by the function with the determinant of the Jacobian matrix

◆ fillEnhancedBuMatrix()

void XfemHMCoupled::fillEnhancedBuMatrix ( const GmElement e,
const GmShape shape,
const GmVector ncoord,
const GmMatrix X,
const GmMatrix J,
GmMatrix Bu,
const QList< int > &  gaussLevelSet,
const int &  nEnrich,
const GmVector nodes,
GmElementDof dofMap,
XfemEnrichedElementData exData,
const int &  gaussIP 
)
protected

Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point.

See the description of fillStiffnessMatrix() for in depth details.

e The element where we are calculating the matrix ip Integration point (xi, eta) where the matrix will be calculated X Node coordinates X matrix used to calculate the Jacobian matrix. Size = n x 2. Hn Matrix of nodal level set values Hip Matrix of gauss point level set value Bu Filled with the calculated enhanced strain displacement matrix. Khoei, XFEM Chapter 2, Section 2.7, Equation 2.73. Size = 4 x 4n detJ Filled by the function with the determinant of the Jacobian matrix

◆ fillEnhancedDof()

void XfemHMCoupled::fillEnhancedDof ( const XfemElement xe,
QList< int > &  iUe,
QList< int > &  iPe,
QList< int > &  iPf,
const int &  np 
)
protectedvirtual

Fills the position index with the degreee of freedom, both the mechanical and hydraulic physics. the implementation supports order of the defined state variables i.e {U, P} or {P, U}.

◆ fillEnhancedDofMP()

void XfemHMCoupled::fillEnhancedDofMP ( const XfemElement xe,
QList< int > &  iUe,
QList< int > &  iPw,
QList< int > &  iPc,
QList< int > &  iPwd,
QList< int > &  iPcd,
const int &  np 
)
protectedvirtual

Fills the position index with the degreee of freedom, both the mechanical and hydraulic physics. the implementation supports order of the defined state variables i.e {U, P} or {P, U}.

◆ fillEnhancedDofNIT()

void XfemHMCoupled::fillEnhancedDofNIT ( const XfemElement xe,
QList< int > &  iUe,
QList< int > &  iPw,
QList< int > &  iTe,
QList< int > &  iPwd,
QList< int > &  iTd,
const int &  np 
)
protectedvirtual

Fills the position index with the degreee of freedom, both the mechanical and hydraulic physics. the implementation supports order of the defined state variables i.e {U, P} or {P, U}.

◆ fillEnhancedNpbotMatrix()

void XfemHMCoupled::fillEnhancedNpbotMatrix ( const GmElement e,
GmVector Np,
const GmVector N,
const QList< int > &  BottomLevelSet,
const int &  nEnrich,
GmElementDof dofMap,
XfemEnrichedElementData exData,
const int &  iSubCrack 
)
protected

Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point.

See the description of fillStiffnessMatrix() for in depth details.

Param e The element where we are calculating the matrix Param ip Integration point (xi, eta) where the matrix will be calculated Param X Node coordinates X matrix used to calculate the Jacobian matrix. Size = n x 2. Param Hn Matrix of nodal level set values Param Hip Matrix of gauss point level set value Param Bu Filled with the calculated enhanced strain displacement matrix. Khoei, XFEM Chapter 2, Section 2.7, Equation 2.73. Size = 4 x 4n Param detJ Filled by the function with the determinant of the Jacobian matrix

◆ fillEnhancedNpJumpMatrix()

void XfemHMCoupled::fillEnhancedNpJumpMatrix ( const GmElement e,
GmMatrix Np,
const GmVector N,
const QList< int > &  BottomLevelSet,
const QList< int > &  TopLevelSet,
const int &  nEnrich,
GmElementDof dofMap,
XfemEnrichedElementData exData,
const int &  iSubCrack 
)
protected

Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point.

See the description of fillStiffnessMatrix() for in depth details.

Param e The element where we are calculating the matrix Param ip Integration point (xi, eta) where the matrix will be calculated Param X Node coordinates X matrix used to calculate the Jacobian matrix. Size = n x 2. Param Hn Matrix of nodal level set values Param Hip Matrix of gauss point level set value Param Bu Filled with the calculated enhanced strain displacement matrix. Khoei, XFEM Chapter 2, Section 2.7, Equation 2.73. Size = 4 x 4n Param detJ Filled by the function with the determinant of the Jacobian matrix

◆ fillEnhancedNpMatrix()

void XfemHMCoupled::fillEnhancedNpMatrix ( const GmElement e,
GmVector Np,
const GmVector N,
const QList< int > &  gaussLevelSet,
const int &  nEnrich,
GmElementDof dofMap,
XfemEnrichedElementData exData,
const int &  gaussIP 
)
protected

Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point.

See the description of fillStiffnessMatrix() for in depth details.

Param e The element where we are calculating the matrix Param ip Integration point (xi, eta) where the matrix will be calculated Param X Node coordinates X matrix used to calculate the Jacobian matrix. Size = n x 2. Param Hn Matrix of nodal level set values Param Hip Matrix of gauss point level set value Param Bu Filled with the calculated enhanced strain displacement matrix. Khoei, XFEM Chapter 2, Section 2.7, Equation 2.73. Size = 4 x 4n Param detJ Filled by the function with the determinant of the Jacobian matrix

◆ fillEnhancedNptopMatrix()

void XfemHMCoupled::fillEnhancedNptopMatrix ( const GmElement e,
GmVector Np,
const GmVector N,
const QList< int > &  TopLevelSet,
const int &  nEnrich,
GmElementDof dofMap,
XfemEnrichedElementData exData,
const int &  iSubCrack 
)
protected

Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point.

See the description of fillStiffnessMatrix() for in depth details.

Param e The element where we are calculating the matrix Param Np Integration point (xi, eta) where the matrix will be calculated Param X Node coordinates X matrix used to calculate the Jacobian matrix. Size = n x 2. Param Hn Matrix of nodal level set values Param Hip Matrix of gauss point level set value Param Bu Filled with the calculated enhanced strain displacement matrix. Khoei, XFEM Chapter 2, Section 2.7, Equation 2.73. Size = 4 x 4n Param detJ Filled by the function with the determinant of the Jacobian matrix

◆ fillEnhancedNubotMatrix()

void XfemHMCoupled::fillEnhancedNubotMatrix ( const GmElement e,
GmMatrix Nu,
const GmVector N,
const QList< int > &  BottomLevelSet,
const int &  nEnrich,
const GmVector nodes,
GmElementDof dofMap,
XfemEnrichedElementData exData,
const int &  iSubCrack 
)
protected

Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point.

See the description of fillStiffnessMatrix() for in depth details.

Param e The element where we are calculating the matrix Param ip Integration point (xi, eta) where the matrix will be calculated Param X Node coordinates X matrix used to calculate the Jacobian matrix. Size = n x 2. Param Hn Matrix of nodal level set values Param Hip Matrix of gauss point level set value Param Bu Filled with the calculated enhanced strain displacement matrix. Khoei, XFEM Chapter 2, Section 2.7, Equation 2.73. Size = 4 x 4n Param detJ Filled by the function with the determinant of the Jacobian matrix

◆ fillEnhancedNuJumpMatrix()

void XfemHMCoupled::fillEnhancedNuJumpMatrix ( const GmElement e,
GmMatrix Nu,
const GmVector N,
const QList< int > &  BottomLevelSet,
const QList< int > &  TopLevelSet,
const int &  nEnrich,
const GmVector nodes,
GmElementDof dofMap,
XfemEnrichedElementData exData,
const int &  iSubCrack 
)
protected

Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point.

See the description of fillStiffnessMatrix() for in depth details.

Param e The element where we are calculating the matrix Param ip Integration point (xi, eta) where the matrix will be calculated Param X Node coordinates X matrix used to calculate the Jacobian matrix. Size = n x 2. Param Hn Matrix of nodal level set values Param Hip Matrix of gauss point level set value Param Bu Filled with the calculated enhanced strain displacement matrix. Khoei, XFEM Chapter 2, Section 2.7, Equation 2.73. Size = 4 x 4n Param detJ Filled by the function with the determinant of the Jacobian matrix

◆ fillEnhancedNutopMatrix()

void XfemHMCoupled::fillEnhancedNutopMatrix ( const GmElement e,
GmMatrix Nu,
const GmVector N,
const QList< int > &  TopLevelSet,
const int &  nEnrich,
const GmVector nodes,
GmElementDof dofMap,
XfemEnrichedElementData exData,
const int &  iSubCrack 
)
protected

Calculates the enhanced strain displacement matrix (B) and the Jacobian determinant in a specified (xi, eta) point.

See the description of fillStiffnessMatrix() for in depth details.

Param e The element where we are calculating the matrix Param ip Integration point (xi, eta) where the matrix will be calculated Param X Node coordinates X matrix used to calculate the Jacobian matrix. Size = n x 2. Param Hn Matrix of nodal level set values Param Hip Matrix of gauss point level set value Param Bu Filled with the calculated enhanced strain displacement matrix. Khoei, XFEM Chapter 2, Section 2.7, Equation 2.73. Size = 4 x 4n Param detJ Filled by the function with the determinant of the Jacobian matrix

◆ fillHeatCapacityMatrix()

void XfemHMCoupled::fillHeatCapacityMatrix ( const GmElement e,
const GmVector coord,
const int &  ip,
GmMatrix Sc,
const GmVector Np,
const double &  c 
)
protectedvirtual

Calculates Heat Capacity 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.

Returns Rt = CTavg * c * Nt * Nt.t(), where c should be equal to w * h * detJ

◆ fillStandardDof()

void XfemHMCoupled::fillStandardDof ( const GmElement e,
QList< int > &  iUe,
QList< int > &  iPe 
)
protectedvirtual

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}.

◆ fillStandardDofMP()

void XfemHMCoupled::fillStandardDofMP ( const GmElement e,
QList< int > &  iUe,
QList< int > &  iPw,
QList< int > &  iPc 
)
protectedvirtual

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}.

◆ fillStandardDofNIT()

void XfemHMCoupled::fillStandardDofNIT ( const GmElement e,
QList< int > &  iUe,
QList< int > &  iPw,
QList< int > &  iTe 
)
protectedvirtual

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}.

◆ fillStorageCompMatrix()

void XfemHMCoupled::fillStorageCompMatrix ( const GmElement e,
const GmVector coord,
const int &  ip,
GmMatrix Sc,
const GmVector Np,
const double &  c 
)
protectedvirtual

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.

This function can operate either in an iso parametric setting (Sc = n x n) or in a super parametric setting (Sc = np x np) where n is the number of element nodes and np the number of element corner nodes.

Returns Sc = N * ((Biot - porosity)/Kss + porosity/Kww) * N.t() * c, where c should be equal to w * h * detJ

◆ fillStorageCompMatrixMP()

void XfemHMCoupled::fillStorageCompMatrixMP ( const GmElement e,
const GmVector coord,
const int &  ip,
GmMatrix Cww,
GmMatrix Cwc,
GmMatrix Ccc,
GmMatrix Ccw,
const GmVector Np,
const double &  c,
const double &  sw 
)
protectedvirtual

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.

This function can operate either in an iso parametric setting (Sc = n x n) or in a super parametric setting (Sc = np x np) where n is the number of element nodes and np the number of element corner nodes.

Returns Sc = N * ((Biot - porosity)/Kss + porosity/Kww) * N.t() * c, where c should be equal to w * h * detJ

◆ fillThermalExpansionMatrix()

void XfemHMCoupled::fillThermalExpansionMatrix ( const GmElement e,
const GmVector coord,
const int &  ip,
GmMatrix Sc,
const GmVector Np,
const double &  c 
)
protectedvirtual

Calculates Thermal Expansion 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.

Returns // Qt = Beta * c * Nt * Nt.t(), where c should be equal to w * h * detJ

◆ shapeValuesBarElem()

void XfemHMCoupled::shapeValuesBarElem ( double  xi,
GmVector N 
)
protected

Returns the shape function evaluated at Xi.

See comments on the base class for function behaviour and on the class for coordinate assumptions and node ordering

Bar 2 shape functions:

N1 = 1/2 * (1 - Xi) N2 = 1/2 * (1 + Xi)

◆ unitVectSegment()

void XfemHMCoupled::unitVectSegment ( const GmMatrix Xg,
GmMatrix uVec,
GmMatrix uVec2,
GmMatrix uVec3,
GmMatrix ROT 
)
protected

\Returns cossines of perpendicular unit vector of segment a-b

Parameters
XgThe ghost nodal coordinates matrix (xi,yi)
uVecThe perpendicular unit vector of segment (vx,vy)

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