MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
GmpMechanicalEmbeddedFracture Class Reference

Basic class for the mechanical physics plugin object. More...

#include <gmpMechanicalEmbeddedFracture.h>

Inheritance diagram for GmpMechanicalEmbeddedFracture:
Collaboration diagram for GmpMechanicalEmbeddedFracture:

Public Types

enum  embeddedPhysicsAttributeIds {
  LOCALEQ_TOL = GmpMechanicalSolid::NUM_ATTRI_IDS , LINESEARCH , RELROTATIONMODE , STRETCHINGMODE ,
  SYMFORMULATION , NUM_ATTRI_IDS
}
 IDs for physics attributes. More...
 
enum  embeddedCellAttributeIds { A_ID , AOLD_ID , NUM_CELLATTRI_IDS }
 IDs for cell attributes. More...
 
- Public Types inherited from GmpMechanicalPhysics
enum  PhysicsAttributeIds {
  ISOPARAMETRIC_ID , STRESS_MODE_ID , STRAIN_MODE_ID , P_STRAIN_MODE_ID ,
  BODY_FORCE_ID , CGRAV_ID , GEOMETRIC_ID , RF_MODE_ID ,
  RMAPPINGINFO_ID , K0MODE_ID , STRAIN_RESET_ID , CONTACT_ID ,
  STRAIN_T_ID , NUM_ATTRI_IDS
}
 IDs for physics attributes. More...
 
enum  StateVarIds { U_ID , NUM_STATEVAR_IDS }
 IDs for Mechanical physics state vars. More...
 
enum  ExternalLoadsIds { PRESSURE_ID , THERMAL_ID , TREF_ID , NUM_EXTLOADS_IDS }
 IDs for Mechanical physics state vars. More...
 
enum  NodeAttributeIds {
  S_NA_ID , E_NA_ID , RF_NA_ID , CF_NA_ID ,
  CD_NA_ID , CIV_NA_ID , CIVOLD_NA_ID , NUM_NA_IDS
}
 IDs for physics node attributes. More...
 
enum  GaussAttributeIds {
  S_GA_ID , SOLD_GA_ID , RS_GA_ID , E_GA_ID ,
  EOLD_GA_ID , YSR_GA_ID , YSROLD_GA_ID , ST_GA_ID ,
  STOLD_GA_ID , ITER_GA_ID , ITEROLD_GA_ID , SUBSTEP_GA_ID ,
  SUBSTEPOLD_GA_ID , LINESEARCH_GA_ID , LINESEARCHOLD_GA_ID , ET_GA_ID ,
  NUM_GA_IDS
}
 IDs for physics Gauss attributes. More...
 
enum  ElementPropertyIds {
  THICKNESS_ID , BF_ID , GRAV_ID , DENS_ID ,
  DENSB_ID , ALPHA_ID , NUM_PROPER_IDS
}
 IDs for physics element properties. More...
 
enum  BoundaryConditionIds {
  FIXED_U_BC_ID , FIXED_CF_BC_ID , PL_BC_ID , HL_BC_ID ,
  WP_BC_ID , NUM_BC_IDS
}
 IDs for accepted boundary condition types. More...
 
enum  BoundaryConditionValueIds {
  BC_UX_ID , BC_UY_ID , BC_UZ_ID , BC_CF_ID ,
  BC_PL_ID , BC_HLR_ID , BC_HL_ID , BC_NRL_ID ,
  BC_SWF_ID , NUM_BCV_IDS
}
 IDs for property values from accepted boundary condition types. More...
 
enum  ContactBCIds { LOCAL_CBC_ID , GLOBAL_CBC_ID , NUM_CBC_IDS }
 IDs for accepted contact boundary conditions. More...
 
enum  ContactBCValueIds { CBC_KCN_ID , CBC_KSN_ID , CBC_MU_ID , NUM_CBCV_IDS }
 IDs for property values from accepted Contact boundary condition (CBC) More...
 

Public Member Functions

 GmpMechanicalEmbeddedFracture (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 ~GmpMechanicalEmbeddedFracture ()
 Destructor.
 
virtual const QVariantMap * physicsMetaDataMap ()
 Returns a reference for the single mechanical physics 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 _mechanicPoint structure.
 
virtual FemResultType fillElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Fills the element matrices and vectors for finite element that can have an embedded discontinuity.
 
virtual FemResultType fillEnrichedElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Fills the element matrices and vectors for a enriched element.
 
int getNumberEnrichedDofs (const GmElement *e)
 Gets the number of enrichment degrees of freedom in the given element TODO: Generalize to consider the intersection between the discontinuities.
 
int getNumberEnrichedDofsPerDiscontinuity () const
 Returns the number of enrichment dofs per discontinuity segment. TODO: 3D in-plane rotation.
 
int getDisplacementJumpOrder () const
 Returns the order of the displacement jump based on the chosen deformation modes.
 
FemResultType solveDiscontinuityEquilibriumEq (const GmElement *e, int nRegDofs, int nEnrDof, GmMatrix &Kuu, GmMatrix &Kuw, GmMatrix &Kwu, GmMatrix &Kww, GmVector &fiu, GmVector &fia, GmVector &ue, GmVector &ae)
 Solves the local equilibrium equations associated with the discontinuities.
 
FemResultType fillEnrichedElementSubData (const GmElement *e, const GmVector &ue, const GmVector &we, const GmMatrix &stressCoeffs, GmMatrix &Kuu, GmMatrix &Kuw, GmMatrix &Kwu, GmMatrix &Kww, GmVector &fiu, GmVector &fiw)
 Fills the enriched element sub-matrices and sub-vectors. K = [ Kuu Kua ] , fi = [ fiu ] [ Kau Kaa ] [ fia ].
 
FemResultType fillDiscontinuitySetElementData (const GmElement *e, const GmVector &ue, const GmVector &ae, GmMatrix &Kd, GmVector &fid, GmMatrix &Kstab) const
 
FemResultType fillInternalBorderElementData (const GmElement *e, GmVector &ue, GmVector &ae, GmMatrix &Kb_uu, GmMatrix &Kb_ua, GmMatrix &Kb_au, GmMatrix &Kb_aa, GmVector &fbu, GmVector &fba)
 Fills the enriched element displacement vector.
 
void getDiscontinuitySubElementIds (const GmElement *e, int k, int &idDiscontinuityElem, int &idDiscontinuityMesh)
 
void displacementJumpShapeFunction (const GmMatrix &DX, const GmMatrix &mn, GmMatrix &Nd) const
 
void fillGrMatrix (const GmElement *e, const GmMatrix &Xe, const GmMatrix &Bu, GmMatrix &Gc) const
 
void fillGvMatrix (const GmElement *e, const GmShape *elemShape, const GmVector &Xn, const GmMatrix &Xe, const GmMatrix &C, GmMatrix &G) const
 
void projectionMatrix (const GmVector &nd, GmMatrix &P) const
 
int dimPolynomialStressInterpolation (const GmElement *e) const
 
void polynomialStressInterpolation (int etype, const GmVector &X, GmMatrix &p) const
 
void GramMatrixPolynomialStress (const GmElement *e, int stressOrder, GmMatrix &H) const
 
void discontinuityIntegralPolynomialStress (const GmElement *ef, int displacementJumpOrder, int stressOrder, GmMatrix &S) const
 
double lineSearch (const GmElement *e, GmMatrix &stressCoeffs, GmVector &ue, GmVector &x0, GmVector &d, GmVector &r)
 Inexact line-search method to solve the local equilibrium equation The function being minimized is f = 0.5 * r^T * r where r is the residual vector. Return the step length (xi) that minimizes the function at the direction d. Considers that the direction d is defined be the Newton-Raphson method.
 
FemResultType fillEnrichedElementLocalEquation (const GmElement *e, const GmMatrix &stressCoeffs, const GmVector &ue, const GmVector &ae, GmVector &fia)
 Fills the enriched element local equilibrium equation.
 
void fillElementOldEnrichedDof (const GmElement *e, GmVector &ae)
 Fills the enriched element displacement vector.
 
void setElementEnrichedDof (const GmElement *e, GmVector &ae)
 Set the current enriched element displacement vector. Updates the cell attributes of the discontinuity elements.
 
void fillEnrichedShapeFncMatrix (const GmElement *e, const GmMatrix &Xe, const GmVector &N, GmMatrix &Nenr) const
 
double auxiliaryFunctionPhi (const GmVector &N, const GmMatrix &Xe, const GmVector &Xref, const GmVector &nd) const
 
void fillDisplacementShapeFncMatrix (const GmElement *e, const GmVector &Nv, GmMatrix &Nm) const
 Assemble displacement field shape function matrix.
 
void fillStressInterpolationCoeffs (const GmElement *e, GmMatrix &stressCoeffs) const
 
FemResultType fillElementDataForLoads (const GmElement *e, int loadId, GmpFemVectorSet &elemVectors)
 
void fillStabilizationMatrix (const GmElement *e, const GmElement *ef, const GmMatrix &Td, const GmMatrix &Dep, GmMatrix &S) const
 Get the stabilization matrix.
 
- Public Member Functions inherited from GmpMechanicalSolid
 GmpMechanicalSolid (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 ~GmpMechanicalSolid ()
 Destructor.
 
virtual bool beforeElementStiffnessLoop (const GmpFemMatrixSet &elemMatrices, const GmpFemVectorSet &elemVectors)
 
virtual void fillBodyForce (const GmElement *e, const GmVector *coord, int ip, GmVector &BFc, const GmVector &N, double c) const
 
virtual void gravityForce (const GmElement *e, const GmVector *coord, int ip, GmVector &Fext_u, const GmVector &N, double c) const
 
virtual void gravityVector (const GmElement *e, const GmVector *coord, int ip, GmVector &gravComp) const
 Fill gravity acceleration vector.
 
virtual bool calcDerivedResults (bool nonLinearSolver)
 Calc stress component on nodes and/or Gauss points, ADDING the calculated value to the current result.
 
virtual bool checkLoadedData ()
 Checks the loaded data.
 
virtual bool addStateItemsToGroup (GmStateDump *state, bool fixedHint, int groupId)
 
- Public Member Functions inherited from GmpMechanicalPhysics
 GmpMechanicalPhysics (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 ~GmpMechanicalPhysics ()
 Destructor.
 
virtual const char * pluginName () const
 
virtual const char * pluginType () const
 
virtual bool supportsStateDumping ()
 
virtual unsigned stress_state (void) const
 Returns the number of stress components.
 
virtual bool fixedNodalForcesBc (QVector< int > &nodes, QVector< int > &dof, QVector< double > &values) const
 See comments on base class. Fills vectors with prescribed nodal concentrated forces.
 
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 displacements.
 
virtual FemResultType fillElementDataForBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Fills the element stiffness matrix elemK and/or the force vector elemF for element 'e', taking into account pressure load and/or point generation boundary conditions, as indicated by the bc parameter.
 
virtual FemResultType fillElementDataPressBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmMatrix &elemMat, GmVector &elemVec)
 calc nodal equivalent force vector due uniforme pressure load.
 
virtual FemResultType fillElementDataHydPressBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmMatrix &elemMat, GmVector &elemVec)
 calc nodal equivalent force vector due hydraulic pressure load. Information is provided from two vertical reference coordinates with the respective
 
virtual FemResultType fillElementDataWaterSheepPressBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmMatrix &elemMat, GmVector &elemVec)
 calc nodal equivalent force vector due water sheet pressure load. Information is provided from reference coordinates to level of water with the respective
 
virtual FemResultType fillContactData (const GmContactBoundaryCondition *cbc, int bcIndex1, int bcIndex2, GmMatrixDof &dofMap, GmpFemMatrixSet &matrixSet, GmpFemVectorSet &vecSet)
 Fills the contact boundary contribution.
 
virtual bool calcMaterialDerivedResults () const
 The virtual function used by calcDerivedResults() to effectively calculate gauss attributes required by the Material.
 
virtual double fillBuMatrix (const GmElement *e, const GmShape *shape, const GmVector &ncoord, const GmMatrix &X, const GmVector &N, const GmMatrix &J, GmMatrix &Bu)=0
 Given a point 'ncood', the element coordinate matrix 'X', the point shape functions 'N' and the transformation Jacobian 'J', fills the matrix with cartesian partial derivatives Bu using the provided shape function and returns the scaled jacobian determinant.
 
void fillElementDisplacements (const GmElement *e, GmVector &ue)
 Given an element, fills the vector 'ue' with nodal displacements. The vector should have size equal to n * d where n is the number of element nodes and d is the node dimension.
 
void fillElementThermalIncrement (const GmElement *e, GmVector &dTe)
 The virtual function to fill the nodal thermal increment.
 
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.
 
virtual bool isPlaneStress ()
 Returns the factor that should be applied when using axis symetric elements. 1.0 for other etypes.
 
virtual bool isAxisymmetric ()
 Returns TRUE only for axisymmetric models.
 
GmpMechanicPointmechanicPoint ()
 Returns the physics mechanical material point.
 
virtual bool evaluatesThermalStrain (const GmElement *e, GmVector &strainT, GmVector &NT, GmVector &dT, double alpha) const
 Returns The thermal strain.
 
GmMatrixdep ()
 Returns a reference to the physics constitutive tangent matrix.
 

Private Attributes

const char * _pluginType
 The plugin type name.
 

Additional Inherited Members

- Protected Member Functions inherited from GmpMechanicalSolid
virtual void calcElementDerivedResultAtPoints (const GmElement *e, int resultId, const GmMatrix &evalPoints, bool evalAtIp, GmMatrix &result)
 The virtual function used by calcDerivedResults() to effectivelly calculate stresses at the given evaluation points.
 
virtual void calcElementResetStrains (const GmElement *e)
 The virtual function used by calcDerivedResults() to effectivelly calculate strain reset to zero. When the displacement are defined as zero, the deformation must also be made zero.
 
virtual bool setInitialConditions ()
 Sets the initial conditionrequired by interface elements.
 
virtual bool updatesReturnMappingInfo ()
 Updates the number of iteration and substeps of return mapping algorithm.
 
virtual bool calcMaterialDerivedResults ()
 The virtual function used by calcDerivedResults() to effectively calculate gauss attributes defined by Material.
 
- Protected Attributes inherited from GmpMechanicalPhysics
GmpMechanicPoint_mechanicPoint
 Access to mechanical material point.
 
GmTLS< GmMatrix, true > _Dep
 Constitutive tangent matrix (2 x 2)
 
bool _setInitialCond
 Sets the initial conditions required by the physics.
 

Detailed Description

Basic class for the mechanical physics plugin object.

Member Enumeration Documentation

◆ embeddedCellAttributeIds

IDs for cell attributes.

Enumerator
A_ID 

Id for the cell attributes.

NUM_CELLATTRI_IDS 

The number of physics attribute ids above.

◆ embeddedPhysicsAttributeIds

IDs for physics attributes.

Enumerator
LOCALEQ_TOL 

Id for retrieving the static condensation physics attribute.

Tolerance for the static condensation process

NUM_ATTRI_IDS 

The number of physics attribute ids above.

Member Function Documentation

◆ checkAndLoadAttributeAccessors()

bool GmpMechanicalEmbeddedFracture::checkAndLoadAttributeAccessors ( LuaTable & nodeTable,
LuaTable & cellTable,
LuaTable & gaussTable )
virtual

Reimplementation of the common function to init the _mechanicPoint structure.

Reimplemented from GmpMechanicalSolid.

◆ fillDiscontinuitySetElementData()

GmpFemPhysics::FemResultType GmpMechanicalEmbeddedFracture::fillDiscontinuitySetElementData ( const GmElement * e,
const GmVector & ue,
const GmVector & ae,
GmMatrix & Kd,
GmVector & fid,
GmMatrix & Kstab ) const

Get the stiffness matrix and the internal force vector from the contribution of the discontinuity cohesive law TODO: multiple intersecting discontinuities

◆ fillElementData()

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

Fills the element matrices and vectors for finite element that can have an embedded discontinuity.

Reimplemented from GmpMechanicalSolid.

◆ fillElementDataForLoads()

GmpFemPhysics::FemResultType GmpMechanicalEmbeddedFracture::fillElementDataForLoads ( const GmElement * e,
int loadId,
GmpFemVectorSet & elemVectors )
virtual

Reimplemented from GmpMechanicalPhysics.

◆ physicsMetaDataMap()

const QVariantMap * GmpMechanicalEmbeddedFracture::physicsMetaDataMap ( )
virtual

Returns a reference for the single mechanical physics attribute map, built when the function is called for the first time.

Reimplemented from GmpMechanicalSolid.


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